0

我在 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>
4

4 回答 4

2

javascript中有一个方法“IsEmpty”吗?我认为这就是问题所在。如果你在其他地方定义了这个,试着在 Firefox 中运行你的代码并观察错误控制台是否有错误。

于 2013-02-21T04:47:43.533 回答
1

对我来说似乎是一个逻辑错误。尝试替换这个:

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;
}
于 2013-02-21T04:51:11.900 回答
1

以这种方式进行验证

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

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

希望这可以帮助!

于 2013-02-21T04:56:12.237 回答
1

这是工作修改代码

  <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;
    }
于 2013-02-21T05:01:29.493 回答