2012-10-04 68 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;