标题:表单验证中的光标定位问题,请高手帮忙!
只看楼主
tjhbzk
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-12-7
结帖率:100%
已结贴  问题点数:20 回复次数:1 
表单验证中的光标定位问题,请高手帮忙!
如果表单的用户名非法输入,当光标移动到密码框时,光标的定位就会发生冲突,如何才能解决呢,请高手帮忙看下,谢谢!

原码如下:
<SCRIPT  type="text/javascript" language="javascript">
    //用户名非空验证+长度验证+合法性验证
    function checkUserName()
    {
        var strName = document.myform.txtUser.value;
        if(strName == "") {
            document.getElementById("userNameError").innerHTML="<font color='red'>用户名不能为空</font>";
            document.myform.txtUser.focus();
            return false;
        }else {
            if(strName.length<4 || strName.length>16) {
                document.getElementById("userNameError").innerHTML="<font color='red'>用户名输入的长度为4-16个字符</font>";
                document.myform.txtUser.select();
                return false;
            }
            //用户名输入合法性验证
            var str = /^[0-9a-z][\w]*[0-9a-z]$/i;
            if(!(str.test(strName))) {
                document.getElementById("userNameError").innerHTML="<font color='red'>会员名包含非法字符,只能包括 a-z、0-9 和下划线</font>";
                document.myform.txtUser.select();
                return false;
            }
        }
    document.getElementById("userNameError").innerHTML = "";
    return true;
    }
    //密码非空验证+确认验证+长度验证
    function checkPass()
    {
        var psd1 = document.myform.txtPass.value;
        var psd2 = document.myform.txtRPass.value;
        if(psd1 == "") {
            document.getElementById("passwordError").innerHTML="<font color='red'>密码不能为空</font>";
            document.myform.txtPass.focus();
            return false;
        }else {
            if(psd1.length<6 || psd1.length>12) {
                document.getElementById("passwordError").innerHTML="<font color='red'>密码长度为6-12个字符</font>";
                document.myform.txtPass.select();
                return false;
            }
        }
        document.getElementById("passwordError").innerHTML="";
        //确认密码一致性验证
        if(psd2 != psd1) {
                document.getElementById("passwordError2").innerHTML="<font color='red'>确认密码与密码输入不一致</font>";
                document.myform.txtRPass.select();
                return false;
        }
        document.getElementById("passwordError2").innerHTML="";
    return true;
    }
</SCRIPT>
<BODY>
<FORM action="success.html" method="post" name="myform"  onSubmit="return checkForm()">
<TABLE   border="0" cellpadding="0" cellspacing="0" align="center">
  <TR>
    <TD width="107" height="36">用户名:</TD>
    <TD width="524"><INPUT name="txtUser" type="text" maxlength="16" onBlur="checkUserName()"><div id="userNameError" style="display:inline"></div>
    &nbsp;(只能输入字母或数字、下划线,4-16个字符)</TD>
  </TR>
    <TR>
    <TD width="107" height="36">密码:</TD>
    <TD width="524"><INPUT name="txtPass" type="password" onBlur="checkPass()"><div id="passwordError" style="display:inline"></div>&nbsp;(密码长度6-12位)</TD>
  </TR>
    <TR>
    <TD width="107" height="36">确认密码:</TD>
    <TD width="524"><INPUT name="txtRPass" type="password" onBLur="checkPass()"><div id="passwordError2" style="display:inline"></div></TD>
  </TR>
</TABLE>
</FORM>
搜索更多相关主题的帖子: 光标 表单 验证 
2010-12-09 15:58
hugeannex
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:477
专家分:911
注 册:2005-3-20
得分:20 
非常的无语。
把onBlur全部改为onchange就行了。

世事如潮我如水,只叹江湖几人回。
2010-12-10 09:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-328511-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.095774 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved