2013-10-14 103 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;