JSP JavaScript始终返回true

ubby3x7f  于 2023-01-15  发布在  Java
关注(0)|答案(3)|浏览(173)

我将此脚本添加到jsp文件中。
这个函数总是返回true,即使在失败的情况下,比如没有匹配表达式和所有内容。
为什么会这样?怎么解决?

<script type="text/javascript">
function validate()
{
    document.getElementById("user").innerHTML="";
    document.getElementById("pass").innerHTML="";
    document.getElementById("mail").innerHTML="";
    document.getElementById("number").innerHTML="";

    var expression = /^[a-zA-Z_.0-9]+$/;
    var mailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}+$/;
    var numberExp = /^[0-9]+$/;
    if(!document.getElementById('username').value.match(expression))
    {
        document.getElementById('username').focus();
        document.getElementById("user").innerHTML=" Enter valid user name";
        return false;
    }
    if(document.getElementById('password').value.length == 0)
    {
        document.getElementById('password').focus();
        document.getElementById("pass").innerHTML = "Fill Password field";
        document.getElementById("pass").style.visibility = "visible";
        return false;
    }
    if(document.getElementById('cnfpassword').value.length == 0)
    {
        document.getElementById('cnfpassword').focus();
        document.getElementById("pass").innerHTML = "Fill confirm Password field";
        document.getElementById("pass").style.visibility = "visible";
        return false;
    }
    if(document.getElementById('password').value != document.getElementById('cnfpassword').value)
    {
        document.getElementById('password').focus();
        document.getElementById("pass").innerHTML = "Password and confirm password Not match";
        document.getElementById("pass").style.visibility = "visible";
        return false;
    }
    if(!document.getElementById('emailid').value.match(expression))
    {
        document.getElementById('emailid').focus();
        document.getElementById("mail").innerHTML=" Enter valid E-mailID";
        document.getElementById("mail").style.visibility = "visible";
        return false;
    }
    if(!document.getElementById('number').value.match(numberExp))
    {
        document.getElementById('number').focus();
        document.getElementById("number").innerHTML=" Enter only numbers";
        document.getElementById("number").style.visibility = "visible";
        return false;
    }
    else
    {
        return true;
    }
 }
lb3vh1jj

lb3vh1jj1#

除了重构建议之外,最简单的事情就是使用Firebug来调试错误,这将为您省去许多麻烦

bzzcjhmw

bzzcjhmw2#

更改document.getElementById('password').value.length == 0

document.getElementById('password').value.length === 0

在JavaScript中
全部以下将返回true

0==""      
0== "0"
false== "0"
null== undefined
0==' \t\r\n '

溶液

全部以下将返回false

0===""      
0=== "0"
false=== "0"
null=== undefined
0===' \t\r\n '

"==""!="运算符将尝试在进行比较之前强制两个值为同一类型。
"===""!=="运算符(也称为标识运算符)在比较时检查类型和值

eblbsuwk

eblbsuwk3#

以上所述是正确的,其他仅对应最后一个if
还请注意,==与===不同。
此外,在函数中只使用一个return语句可能更好。

相关问题