2012-10-04 150 views
1

我想驗證使用JavaScript的窗體。文本字段嵌入在表格行中。空白表格行留下來顯示警告(如「不能空白」)。當我在onsubmit上調用validateForm()方法時,警告將出現在表格行中並消失。當我第二次按下按鈕時,警告會留在html頁面上。我不知道發生了什麼事。。窗體驗證javascript

function validateForm() { 
var warnmsg = checkNames(); 
document.getElementById("row1").innerHTML = warnmsg; 
} 
function checkNames() { 
var fname = document.getElementById("fname"); 
if (fname.value.length==0) 
    return "Cannot be left blank"; 
else 
    return ""; 

}

+0

您還應該添加表的HTML源代碼。 – Veehmot

回答

0

您必須返回false的頁面不離開。

  function validateForm() 
      { 
       var warnmsg = checkNames(); 
       document.getElementById("row1").innerHTML = warnmsg; 
       return !warnmsg.length >0;//if there is a warning message, return false 
      } 

然後在您的形式:

onsubmit="return validateForm()" 

這裏是我的測試頁

<html> 
    <head> 
     <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
     <script> 
      function validateForm() 
      { 
       var warnmsg = checkNames(); 
       document.getElementById("row1").innerHTML = warnmsg; 
       return !warnmsg.length >0; 
      } 
      function checkNames() 
      { 
       var fname = document.getElementById("fname"); 
       if (fname.value.length==0) 
        return "Cannot be left blank"; 
       else 
        return ""; 
      } 
     </script> 
    </head> 

    <body> 
     <form onsubmit="return validateForm()"> 
        <p id="row1"></p> 
      <input type="text" id="fname" /> 
      <input type="submit" /> 
     </form> 
    </body> 
</html> 
+0

我照你說的去做了。警告在第一次點擊時出現並消失。當我第二次點擊它時,警告會留在頁面上。 – DarknessBeginsHere

+0

真的嗎?這很奇怪。我試過的時候一切似乎都在工作 – MikeB

+0

@AmerSohail當你第二次說消息停留在頁面上時,你有沒有調試頁面並確保你的validateForm函數被調用?如果我是你,我可能會開始踏入這一步。 – cobolstinks

0

使用此:

var warnmsg = checkNames;