2012-01-18 146 views
0

我正在開發一個Web應用程序,其中我創建了一個窗體,並在窗體的onSubmit事件中調用了一個Java腳本函數,它將檢查「Field must not left blank」條件if它留空形式不得發佈,所以我寫了下面的代碼:Javascript字段驗證工作不正常

JSP頁面表格

<form action="Result.jsp" name="validityCheck" onsubmit="return fnCheckEmptyField();"> 

<input type="text" name="txtIIDN" id="txtIIDN" style="font-size:medium;" onkeypress="return fnKeyPress(event)"/> 


<input type="submit" id="btnValidityCheck" value="Check Validity" /> 
</form> 

Javascript代碼如下所示

<script> 
function fnCheckEmptyField() 
    { 
     var strDomain= document.getElementsByName("txtIIDN").value; 
     if(strDomain == null) 
     { 
      document.getElementById("lblValidityStatus").innerHTML=""; 
      document.getElementById("lblValidityStatus").innerHTML="Domain Name Field Can't be Left Blank"; 
      return false; 
     } 
     else 
     { 
      return true; 
     } 
    } 

</script> 

當我嘗試提交表單時,javascript函數被執行,然後表單將被髮布,無論返回值是true還是false。 我不想提交表單時,返回值爲false即當字段爲空

,並在onsubmit事件條件的onsubmit =「返回fnCheckEmptyField();我展示一個錯誤 無法從功能外返回或方法。

你能弄清楚什麼是我commiting錯誤和可能的解決方案是什麼?

+0

在jsp中刪除表單動作,如果函數返回true,則將動作添加到特定表單。 – Unknown 2012-01-18 05:53:10

回答

0

形式卸下onsubmit事件,並在提交按鈕HTML,把這個

<input type="submit" id="btnValidityCheck" value="Check Validity" onclick="return fnCheckEmptyField();" /> 
+0

我也試過這個,但它不起作用 – 2012-01-18 05:59:44

0

加入到Furqan的說法中,您應該使用按鈕和onclick事件來檢查表單,如果表單有效,請在表單上調用.submit()。

我往往甚至不使用提交按鈕,我只是有一個正常的按鈕,並讓它運行JavaScript ...然後JavaScript提交表單。

示例(HTML提交按鈕):

<button id="btnValidityCheck" value="Check Validity" onclick="return fnCheckEmptyField();">Click Here</button> 

JavaScript函數:

function fnCheckEmptyField() { 
    var strDomain= document.getElementsByName("txtIIDN").value; 
    if(strDomain == "") { 
     document.getElementById("lblValidityStatus").innerHTML="Domain Name Field Can't be Left Blank"; 
    } 
    else { 
     document.getElementById("myFormId").submit(); 
    } 
} 

要注意,如果JavaScript的覺得形式是有效的,那麼它會提交表單。你需要爲你的表單標籤定義一個id才能使用。

而且,我改變了== NULL檢查== 「」 ...這可能是導致問題......

乾杯!

+0

實際上null無法正常工作.....並且函數也被執行了,但問題出現在函數執行後,表單得到發佈,因爲這個主要目標是不提交表單或未遍歷到下一頁未實現 – 2012-01-18 06:35:48

+0

onSubmit事件中顯示的錯誤消息中顯示的內容可能與onClick事件相同onsubmit =「return fnCheckEmptyField();顯示錯誤無法從外部返回一個函數或方法 – 2012-01-18 06:38:35

+0

我的代碼做的是這樣的:直到它知道它是有效的,它纔會提交表單,而不是試圖取消表單提交。 – tootsiejasmine 2012-01-18 21:24:49