2013-10-14 62 views
0

我似乎无法弄清楚什么是错我的JS。 所有我需要的是功能validateForm检查表单上的空字段与idformId 我从来没有得到浏览器的警报。JS功能来验证空输入字段不工作

这里是我的JS:

<script> 
    $(document).ready(function(){ 
     window.validateForm = validateForm; 
     function validateForm(formId){ 
     var form=document.getElementById('#formId'); 
     for(i=0; i<form.childNodes.length; i++) 
      if(form.childNodes[i].tagName!='INPUT'|| 
       typeof form.childNodes[i].value=="undefined") 
       continue; 
      else{ 
       var x=form.childNodes[i].value; 
       if(x==null||x==""){ 
        alert("please fill out all fields"); 
        return false; 
       } 
      } 
    } 
</script> 

这里是HTML:

<form id="formId" name="myForm" action="mailto:" onsubmit="return validateForm()" method="post"> 
    first field: <input type="text" name="first"></br> 
    second field: <input type="text" name="second"></br> 
    third field: <input type="text" name="third"></br> 
    fourth field: <input type="text" name="fourth"></br> 
    <input type="submit" value="Submit"> 
+0

你的意思是什么的不灵? – thefourtheye

+0

我从来没有得到浏览器的警报 – irm

回答

1

请检查该小提琴看到它在行动http://jsfiddle.net/thefourtheye/p9pDu/1/

有在你的代码需要四个变化

  1. 变化形式的定义是这样

    <form id="formId" name="myForm" action="mailto:" method="post"> 
    
  2. 您的validateForm函数不需要任何参数。

  3. 当您使用document.getElementById时请勿使用#。所以,它应该是

    document.getElementById('formId') 
    
  4. 你只需要这一行,以确保在提交表单时validateForm被调用。

    $('#formId').on('submit', validateForm); 
    
0

validateForm功能文档准备回调中定义(在回调函数范围)。这将无法在全球范围内访问。但是你试图访问你的onsubmit事件中的函数。

这样做只是后的回调函数,函数的定义,使全局可用的功能:

window.validateForm = validateForm;