当前位置:编程学习 > C#/ASP.NET >>

asp.net脚本验证问题

页面用了AJAX    验证脚本在JS文件中 在页面上验证时第一次能通过,再改成错误的能也能验证,第三次输入正确时就不能验证了,看截图

第一次输入正确:

第二次输入错误:

第三次输入正确:但验证错误

谁知道怎么回事啊?

追问:我有好几个验证,i=i+1是用来判断只要有一个判断没通过就返回FALSE

function checkreg()
{
    var nameRegex="^([a-zA-Z0-9_-]{6,12}$)";
    var emailRegex="^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$";
    var tnameRegex="^[\u4e00-\u9fa5]{0,}$";
//    var telRegex="^1\d{10}$|^(\d{3,4}-)?\d{8}$";
    var i=0;
   
    var rename=new RegExp(nameRegex);
    var reemail=new RegExp(emailRegex);
    var retname=new RegExp(tnameRegex);
//    var rettel=new RegExp(telRegex);
    if(document.getElementById("tbname").value!="")
    {
        if(rename.test(document.getElementById("tbname").value))
        {
           
        }
        else
        {
            document.getElementById("label8").innerText="用户名格式不正确!";
            i=i+1;
        }
    }
    else
    {
        document.getElementById("label8").innerText="用户名不能为空!";
        i=i+1;
    }
    if(document.getElementById("tbpwd").value!="")
    {
        if(document.getElementById("tbpwd").value.length>6 && document.getElementById("tbpwd").value.length<20)
        {
           if(document.getElementById("tbpwd").value==document.getElementById("tbpwd2").value)
            {
               
            }
            else
            {
                document.getElementById("Label6").innerText="两次密码不一致!";
                i=i+1;
            }
        }
        else
        {
            document.getElementById("Label7").innerText="密码长度不够!";
            i=i+1;
        }
       
    }
    else
    {
        document.getElementById("Label7").innerText="密码不能为空!";
        i=i+1;
    }
    if(document.getElementById("tbpwdkey").value!="")
    {
        if(document.getElementById("tbpwdkey").value.length>5 && document.getElementById("tbpwdkey").value.length<19)
        {
           
        }
        else
        {
            document.getElementById("Label5").innerText="密码钥匙长度不够!";
            i=i+1;
        }
    }
    else
    {
        document.getElementById("Label5").innerText="密码钥匙不能为空!";
        i=i+1;
    }
    if(document.getElementById("tbemail").value!="")
    {
        if(reemail.test(document.getElementById("tbemail").value))
        {
           
        }
        else
        {
            document.getElementById("Label4").innerText="Email格式不正确!";
            i=i+1;
        }
    }
    else
    {
        document.getElementById("Label4").innerText="Email不能为空!";
        i=i+1;
    }
    if(document.getElementById("tbtname").value!="")
    {
        if(retname.test(document.getElementById("tbtname").value))
        {
           
        }
        else
        {
            document.getElementById("label3").innerText="真实姓名只能输入汉字!";
            i=i+1;
        }
    }
    else
    {
        document.getElementById("label3").innerText="真实姓名不能为空!";
        i=i+1;
    }
    if(document.getElementById("tbtel").value!="")
    {
        if(/^1\d{10}$|^(0\d{2,3}-)?\d{7,8}$/.test(document.getElementById("tbtel").value))
        {
           
        }
        else
        {
            document.getElementById("Label2").innerText="电话号码格式不正确!";
            i=i+1;
        }
    }
    else
    {
        document.getElementById("Label2").innerText="电话号码不能为空!";
        i=i+1;
    }
    if(document.getElementById("tbaddress").value!="")
    {
        if(document.getElementById("tbaddress").value.length<20)
        {
            document.getElementById("Label1").innerText="地址太短了吧!";
            i=i+1;
        }
    }
    else
    {
        document.getElementById("Label1").innerText="地址不能为空!";
        i=i+1;
    }
    if(i>0)
    {
       
        alert("信息填写不完整!");
        return false
    }
    else
    {
        return true
    }}

答案:1. checkreg代码不全:i=i+1;是什么意思?

2. 重点看你的return 值,比如验证失败的时候应该返回false;验证成功应该返回true,而在你给的代码中,我没有看到相关的返回值代码。建议:

if(/^1\d{10}$|^(0\d{2,3}-)?\d{7,8}$/.test(document.getElementById("tbtel").value))
        {
            return true;
        }
        else
        {
            document.getElementById("Label2").innerText="电话号码格式不正确!";
            i=i+1;

            return false;
        }

 

也就是把你的return 值放到if else 里面。

图看不到

 

上一个:asp.net缂栫▼棰?- 宸茶В鍐?- 鎼滄悳闂棶
下一个:ASP.NET的问题

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,