JSP Java脚本验证不起作用

JSP Java Script validation not working

本文关键字:不起作用 验证 脚本 Java JSP      更新时间:2023-09-26

我在JSP页面中写了一个java脚本代码,但当我试图提交页面时,我的javascript验证代码没有被激发,有人能帮我出什么问题吗?

这里我的代码:

<html>
<center><h3>Employee Absent Report</h3></center>
<head>

<script language="javascript" type="text/javascript">

function onFormSubmit(){
    var countErrors = 0;
    var strDt=document.getElementById("startdate").value;
    var endDt=document.getElementById("todate").value;
    var flag=false;
    var eFlag = false;
    if (IsEmpty(strDt)==false && IsEmpty(endDt)==true ) {       
        document.getElementById("divExpiryDate").innerHTML = "* Please Enter Expiry Date";
    return false;
    }
    if (IsEmpty(strDt)==true && IsEmpty(endDt)==false ) {       
        document.getElementById("divStartDate").innerHTML = "* Please Enter Start Date";
        return false;

    }
    return true;
}
</script>
</head>
<body>
<form name="form" action="FormServlet" method="get" onsubmit="return onFormSubmit(); ">
<center>
<div id="formErrors" class="error"></div>       
FromDate:
<input type="text" name="startdate" id="startdate"/>
 <div id="divStartDate"></div>
<br>
ToDate:
<input type="text" name="todate" id="todate"/>
 <div id="divExpiryDate"> </div>
<br>
<input type="submit" value="submit"/>
</center>
</form>
</body>
</html>

javascript中有方法"IsEmpty"吗?我认为这就是问题所在。如果您在其他地方已经定义了这一点,请尝试在Firefox中运行代码,并查看错误控制台中的错误。

我觉得这是一个逻辑错误。请尝试替换它:

if (IsEmpty(strDt)==false && IsEmpty(endDt)==true ) {       
    document.getElementById("divExpiryDate").innerHTML = "* Please Enter Expiry Date";
return false;
}
if (IsEmpty(strDt)==true && IsEmpty(endDt)==false ) {       
    document.getElementById("divStartDate").innerHTML = "* Please Enter Start Date";
    return false;

}

带有:

if (endDt.length==0) {       
    document.getElementById("divExpiryDate").innerHTML = "* Please Enter Expiry Date";
return false;
}
if (strDt.length==0) {       
    document.getElementById("divStartDate").innerHTML = "* Please Enter Start Date";
    return false;
}

以这种方式进行验证

if (endDt === "") {       
    document.getElementById("divExpiryDate").innerHTML = "* Please Enter Expiry Date";
    return false;
}
if (strDt === "" ) {       
   document.getElementById("divStartDate").innerHTML = "* Please Enter Start Date";
   return false;
}

希望这能有所帮助!

这是正在工作的修改代码

  <script>
    function onFormSubmit(event){
        var countErrors = 0;
        event.preventDefault();
        var strDt=document.getElementById("startdate").value;
        var endDt=document.getElementById("todate").value;
        var flag=false;
        var eFlag = false;
        if ( IsEmpty(endDt)==true ) {    
            document.getElementById("divExpiryDate").innerHTML = "* Please Enter Expiry Date";
        eFlag = true ;
        }
        if (IsEmpty(strDt)==true  ) {    
            document.getElementById("divStartDate").innerHTML = "* Please Enter Start Date";
            eFlag = true;
        }
        if(eFlag)
        {
            return false;
        }
        return true;
    }
    function IsEmpty(input)
    {
       if(input.replace(/^'s+|'s+$/g,"")    === "") {
           return true;
       }
      return false;
    }