2013-05-02 111 views
0

我試圖循環遍歷表單中的所有輸入,如果輸入不包含值,則執行一些操作。jquery each()函數不按預期工作

這裏是我的代碼,到目前爲止,

$('input').each(function() { 
    if($(this+'[value!=""]')) { 
     $('.requiredMark').hide(); 
     $(this).after(checkMark); 
    }  
}); 

我在做什麼錯?謝謝

+2

那麼,你現在的代碼有什麼問題?它什麼都不做?發生錯誤?崩潰你的電腦?讓飛行的猴子從天上墜落?給你免費的華夫餅?請澄清。 – Doorknob 2013-05-02 20:46:09

+3

'這裏'不是一個字符串,但你似乎認爲它是。 – apsillers 2013-05-02 20:46:41

+4

您的'if'陳述完全錯誤。 – SLaks 2013-05-02 20:46:48

回答

1

if-statement是錯誤的。 this不會引用字符串。使用.val()以獲得值:

$('input').each(function(){ 
    var $this = $(this); 

    if($this.val() != "") { 
     $('.requiredMark').hide(); 
     $this.after(checkMark); 
    }  
}); 
+1

太棒了,謝謝。這工作。 – Richard 2013-05-02 20:49:15

+1

'this.value'也可以。 – 2013-05-02 20:49:50

+0

@理查德沒問題! – alexn 2013-05-02 20:51:36

0

這應該有所斬斷。

$('input').each(function(){ 
      if($(this).val()){ 
       $('.requiredMark').hide(); 
       $(this).after(checkMark); 
      }  
     }); 
0

您可以$(this)

訪問您的輸入字段,以獲取其價值的$(this).val()

1

而不是做$(這+ '[價值!= 「」]'),你可以使用

if($(this).val()===''){ 
    //if the element has empty value, do something here 
} 
+1

另外,如果你想檢查空格,你可以做$(this).val()。trim() – 2013-05-02 20:50:06