2013-02-21 150 views
0

我在JSP页面中编写了一个java脚本代码,但是当我尝试提交页面时,我的JavaScript验证代码没有被解雇,任何人都可以帮我解决问题吗?JSP Java脚本验证不起作用

这里我的代码:

<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> 
+1

寻找在控制台的错误。我建议你使用chrome,它有很棒的开发者控制台。 – kaysush 2013-02-21 04:48:48

+1

打开IE浏览器开发工具栏,检查它给出的错误。我认为问题出在'IsEmpty()'上 – asifsid88 2013-02-21 04:54:28

回答

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; 
} 
2

有没有在JavaScript的方法 “为IsEmpty”?我认为这是问题。如果您在其他地方定义了这些内容,请尝试在Firefox中运行您的代码并查看错误控制台是否有错误。

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; 
} 

希望这有助于!

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; 
    }