一个简单的form表单验证

在用html以及javascript写一个简单的表单验证时遇到了不少小问题。
因为javascript是脚本语言不用编译和检查,所以一旦代码上出现一些小问题可能很难发现。
我的代码如下

// An highlighted block
<script>
    function check(form) {
        var n=form.username.value;
        if(n.length==0)
        {
            document.getElementById("name").innerHTML="<font color='red'>*用户名不能为空!</font>";
            return false;
        }
        document.getElementById("name").innerHTML="";
        var p=form.userpass.value;
        if(p.length<6||p.length>12)
        {
            document.getElementById("pass").innerHTML="<font color='red'>*密码长度为6到12位!</font>";
            return false;
        }
        document.getElementById("name").innerHTML="";
        var rp=form.repass.value;
        if(rp!=p)
        {
            document.getElementById("rpass").innerHTML="<font color='red'>*两次输入密码不一致!</font>";
            return false;
        }
        document.getElementById("rpass").innerHTML="";
        return true;
    }
</script>
<body>
<form  action="http://localhost:8080/mvc_war_exploded/Reg" onsubmit="return check(this)" method=get>
   <table align="center">
    <tr>
       <td>用户名:</td>
       <td><input type="text" name="username"><span id="name"></span></td>
   </tr>
    <tr>
        <td>密码:</td>
        <td><input type="password" name="userpass"><span id="pass"></span></td>
    </tr>
    <tr>
        <td>确认密码:</td>
        <td><input type="password" name="repass"><span id="rpass"></span></td>
    </tr>
       <tr>
           <td><input type="submit" value="提交"></td>
       </tr>
   </table>
</form>

这是修改过后的正确代码。因为我在form的anction使用相对路径时一直存在问题,所以索性直接填入了一个绝对路径(这个路径是我写的servlet)。总算能正常运行了。

就是一个html的form表单用于用户注册,再用js加入一些简单的判断作以规范用户所提交的数据。
script中创建的一个check方法就是用于获取用户输入并判断的。form表单中的属性οnsubmit=“return check(this)”即当check返回true时,提交才会成功,注意,这里的return不能少。现实中这种方式可以限制用户提交表单的规范性,从而避免了大量的无用信息被提交到服务器。
我在测试的时候遇到了验证失效的情况,无论我是否有输入,一旦点击提交后都会成功提交,最后才发现是我写的document.getElementById()中所给的参数没有加双引号。因为前面所说的脚本语言的特性导致我折腾了很久才发现这个小错误。在此警醒自己,以后写代码一定细心。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值