2013-05-22 49 views
1

下面的函數驗證正確的空白字段:jQuery的回報無法正常運行

function empty_field(element){ 
    element.each(function(){ 
     if($(this).val() == ''){ 
      $(this).addClass('error'); 
     } 
     else{ 
      $(this).removeClass('error'); 
      return true; 
     } 
    }); 
} 

不過,我想檢查驗證是通過以下操作完成:

 submit.click(function(e){ 
      e.preventDefault(); 

          var input = $('.input'); 

      if(empty_field(input))//if the form is valid 
      { 
       console.log('form validated'); 
      } 

     }); 

當我點擊提交按鈕的表單得到驗證,但控制檯日誌不起作用,這意味着可能是條件錯誤。

任何幫助?

+0

你提示的形式是有效的,如果該字段爲空?如果該字段不爲空,你是不是有意使它有效。在這種情況下否定條件陳述。 –

+0

http://jsfiddle.net/qMCJ2/ – Alex

回答

4

你的內部函數不會從外部函數返回。

您可以使用empty_field函數範圍內的變量進行修改。例如。

function empty_field(element){ 
    var valid = true; 
    element.each(function(){ 
    if($(this).val() == ''){ 
     $(this).addClass('error'); 
     valid = false; 
    } 
    else{ 
     $(this).removeClass('error'); 
    } 
    }); 
    return valid; 
} 
+0

另外:你的函數應該可能被稱爲'fields_not_empty'參數'元素'(複數)。閱讀你的代碼的人不會感到困惑。 – Tim

3

不必返回從函數的任何信息,

function empty_field(element){ 
    var noError = false; 
    element.each(function(){ 
     if($(this).val() == ''){ 
      $(this).addClass('error'); 
     } 
     else{ 
      $(this).removeClass('error'); 
      noError = true; 
      return false; // to break the `.each()` 
     } 
    }); 
return noError; 
}