2011-10-06 170 views
3

有没有我做错了,停止窗体验证?我似乎无法让它在验证框没有被点击时进行验证。使用Javascript验证输入表单

您的帮助将不胜感激。

<html> 
    <head> 
    <script type="text/javascript"> 

    function validateTerms(){ 
     valid = true; 
     if (document.application-form.terms.checked == false){ 
      alert ("Please accept the terms"); 
      valid = false; 
     } 
     return valid; 
    } 
    </script> 
    </head> 

    <body> 

     <form id="application-form" name="application-form" method="post" action=""><br /> 
     <p><input type="checkbox" name="terms" value="terms" /><b> I have read the <a href="terms.php">Terms</a> *</b>. </p> 

     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="Submit Application" onsubmit="return validateTerms()"> 
     <input type="reset" value ="Clear Form" onClick="return confirm('Are you sure you want to reset the form?')"> 
     </form> 
    </body> 
    </html> 

回答

1

输入按钮没有onsubmit事件,请使用onclick来代替。还有其他问题,如选择不当等,这些都解决了。见下面

看到一个工作演示这里http://jsfiddle.net/ZHfX7/

<html> 
    <head> 

    </head> 

    <body> 

     <form id="application-form" name="application-form" method="post" action=""><br /> 
     <p><input type="checkbox" id="terms" name="terms" value="terms" /><b> I have read the <a href="terms.php">Terms</a> *</b>. </p> 

     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="Submit Application" onclick="return validateTerms()"> 
     <input type="reset" value ="Clear Form" onClick="return confirm('Are you sure you want to reset the form?')"> 
     </form> 
    </body> 
     <script type="text/javascript"> 

    function validateTerms(){ 
     valid = true; 
     if (!document.getElementById('terms').checked){ 
      alert ("Please accept the terms"); 
      valid = false; 
     } 
     return valid; 
    } 
    </script> 
    </html> 
+0

谢谢,这工作。将需要花更多的时间与Javascript。 –

0

onsubmit应该是<form>标签,而不是<input>的一部分。

<form id="application-form" name="application-form" method="post" action="" onsubmit="return validateTerms();"> 
0

不能使用application-form内嵌在你document.application-form.terms.因为它不是一个法律JS标识符由于连字符。

要么给复选框一个ID;

<input type="checkbox" name="terms" value="terms" id="terms" /> 

然后用

if (document.getElementById("terms").checked = .... 

引用它,或者使用[]符号;

document.forms['application-form'].terms ... 
0

应用形式是不是一个有效的名称
的onsubmit不上输入有效,移动,形成

尝试 -

<html> 
    <head> 
     <script type="text/javascript"> 
     function validateTerms(){ 
      if (document.application.terms.checked){ 
       alert ("Please accept the terms"); 
       return false; 
      } 
      return true; 
     } 
     </script> 
    </head> 
    <body> 
     <form id="application" name="application" method="post" action="" onsubmit="return validateTerms()"><br /> 
     <p><input type="checkbox" name="terms" value="terms" /><b> I have read the <a href="terms.php">Terms</a> *</b>. </p> 
     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="submit" value="Submit Application" > 
     <input type="reset" value ="Clear Form" onClick="return confirm('Are you sure you want to reset the form?')"> 
     </form> 
    </body> 
</html>