2013-02-21 149 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; 
    }