JS实现Form表单登录验证与MD5加密详解

作者:听澜

时间:2026-10-30

浏览:184

本文详细介绍如何利用JavaScript和jQuery库实现Form表单的登录验证,并通过MD5算法对密码进行前端加密处理。内容涵盖jQuery的本地与CDN导入方式、表单提交事件的拦截与校验逻辑,以及使用MD5库加密密码并优化用户体验的两种实现方案,帮助开发者提升Web应用的基础安全性。

文章目录

前言

在前端开发中,利用JavaScript对Form表单的登录提交进行验证是常见的功能需求。

实现这一功能通常需要借助jQuery库,这是一个快速且简洁的JavaScript框架,也是继Prototype之后备受推崇的代码库之一。

引入jQuery主要有两种途径:

第一种是本地导入。

<script src="/web/WEB-INF/lib/jQuery/jQuery 3.6.4.js"></script>

这种方式要求开发者预先将jQuery文件下载并存放于项目目录中,通过相对路径引用。可以从jQuery官网获取,也可通过指定链接下载。文件名后缀带有“min”表示这是压缩版,功能与完整版一致,仅去除了空格和空白字符以减小体积。

第二种是外部CDN导入。

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.js"></script>

通过内容分发网络(CDN)引入库文件,这种方式依赖网络连接,断网状态下无法加载。鉴于jQuery库体积较小,建议优先采用本地导入方式,以避免网络依赖带来的潜在问题。

接下来,构建一个基础的Form表单结构。

<div>
    <form action="#" method="post" id="form" >
        <span>用户名:</span><input type="text" id="userName" name="userName"><p id="point_1"></p><br>
        <span>密码:</span><input type="password" id="pwd" name="pwd"><p id="point_2"></p><br>
        性别:
        <input type="radio" name="sex" id="boy" value="男"  checked="checked">男
        <input type="radio" name="sex" id="girl" value="女" >女<br><br>
        <button type="submit">提交</button>
        <p id="point_3"></p>
    </form>
</div>

可以通过监听Form表单的submit事件来控制提交行为。在submit处理函数中设置判断逻辑:若验证通过则返回true,否则返回false并给出提示。同时,调用event.preventDefault()阻止submit事件的默认提交行为,从而避免页面刷新。

为每个输入框设置id和name属性至关重要。id便于在JavaScript中通过DOM操作获取标签的value值;name属性则在表单向服务器提交时,作为键值对中的键名。对于性别选项,男女单选框使用相同的name属性以实现互斥选择,即只能提交其中一个值。此外,使用p标签用于显示具体的提示信息。

对应的JavaScript验证代码如下:

     $("#userName").blur(function (){
        if($("#userName").val()===""){
            $("#userName").css({"border": "3px solid red" });
            $("#point_1").text("用户名不能为空!!");
        }else{
            $("#userName").css({"border":"1px solid black"});
            $("#point_1").text("");
        }
        //还可以进行其他判断
    });
    $("#pwd").blur(function (){
        if($("#pwd").val()===""){
            $("#pwd").css({"border": "3px solid red" });
            $("#point_2").text("密码不能为空!!");
        }else{
            $("#pwd").css({"border":"1px solid black"});
            $("#point_2").text("");
        }
        //还可以进行其他判断
    });
    $("#form").submit(function (event){
        if(($("#userName").val()!=="")&&($("#pwd").val()!=="")){
            return true;
        }else {
            $("#point_3").text("请输入正确的信息!!").css({"color":"red"});
            event.preventDefault();
            return false;
        }
    });

运行效果如下所示:

前言

当所有输入项均符合验证条件时,表单数据将正常提交至服务器。

前言

前言

虽然数据已提交,但为了安全起见,我们可以对原始密码进行MD5加密处理后再发送。

首先,需要引入MD5加密的JavaScript文件:

<script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js"></script>

修改后的代码示例如下:

在原有验证逻辑基础上,增加一行调用MD5函数对原始密码进行加密的代码,并将加密后的结果重新赋值给pwd变量。

     $("#userName").blur(function (){
        if($("#userName").val()===""){
            $("#userName").css({"border": "3px solid red" });
            $("#point_1").text("用户名不能为空!!");
        }else{
            $("#userName").css({"border":"1px solid black"});
            $("#point_1").text("");
        }
        //还可以进行其他判断
    });
    $("#pwd").blur(function (){
        if($("#pwd").val()===""){
            $("#pwd").css({"border": "3px solid red" });
            $("#point_2").text("密码不能为空!!");
        }else{
            $("#pwd").css({"border":"1px solid black"});
            $("#point_2").text("");
        }
        //还可以进行其他判断
    });
    $("#form").submit(function (event){
        if(($("#userName").val()!=="")&&($("#pwd").val()!=="")){
            $("#pwd").val(md5($("#pwd").val()));//加密代码
            return true;
        }else {
            $("#point_3").text("请输入正确的信息!!").css({"color":"red"});
            event.preventDefault();
            return false;
        }
    });

此时的运行效果如下:

前言

此外,还有一种优化方案:

可以将加密后的密码重新赋值给可见的input框,但这会导致用户看到密码字符的变化。为了提升用户体验,可以引入一个隐藏的input框来接收加密后的密码,并替代可见密码框向服务器发送加密数据。

完整的优化代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js"></script> 
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.js"></script>
    <!--一般还是把js下载到项目里,再从项目里导入-->
</head>
<body>
<div>
    <form action="#" method="post" id="form" >
        <span>用户名:</span><input type="text" id="userName" name="userName"><p id="point_1"></p><br>
        <span>密码:</span><input type="password" id="pwd"><p id="point_2"></p><br>
        <!--一个隐藏框-->
        <input type="hidden" id="md5password" name="pwd">
        性别:<!--name的作用是让男,女两个标签互斥,只能选择其中一个-->
        <input type="radio" name="sex" id="boy" value="男"  checked="checked">男
        <input type="radio" name="sex" id="girl" value="女" >女<br><br>
        <button type="submit">提交</button>
        <p id="point_3"></p>
    </form>
</div>
<script>
    $("#userName").blur(function (){
        if($("#userName").val()===""){
            $("#userName").css({"border": "3px solid red" });
            $("#point_1").text("用户名不能为空!!");
        }else{
            $("#userName").css({"border":"1px solid black"});
            $("#point_1").text("");
        }
        //还可以进行其他判断
    });
    $("#pwd").blur(function (){
        if($("#pwd").val()===""){
            $("#pwd").css({"border": "3px solid red" });
            $("#point_2").text("密码不能为空!!");
        }else{
            $("#pwd").css({"border":"1px solid black"});
            $("#point_2").text("");
        }
        //还可以进行其他判断
    });
    $("#form").submit(function (event){
        if(($("#userName").val()!=="")&&($("#pwd").val()!=="")){
            $("#md5password").val(md5($("#pwd").val()));//md5加密
            return true;
        }else {
            $("#point_3").text("请输入正确的信息!!").css({"color":"red"});
            event.preventDefault();
            return false;
        }
    });
</script>
</body>
</html>

总结

至此,关于如何使用JS实现Form表单登录验证并结合MD5加密的文章介绍完毕。如需了解更多相关技术,可查阅本站历史文章或继续浏览后续内容,感谢大家的支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章