2013-05-02 2 views
0

Я пытаюсь перебрать все входы в моей форме, и если вход не содержит значения, сделайте пару вещей.Функция jquery each() не работает по назначению

Вот мой код до сих пор,

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

Что я делаю неправильно? Спасибо

+2

Ну, в чем проблема с вашим текущим кодом? Он ничего не делает? Сделать ошибку? Сбой компьютера? Сделать летающих обезьян падать с неба? Дайте вам бесплатные вафли? Просьба уточнить. – Doorknob

+3

'this' здесь не строка, но вы, кажется, думаете, что это так. – apsillers

+4

Ваш оператор 'if' полностью ошибочен. – SLaks

ответ

1

Это неверный пример. this не будет ссылаться на строку. Используйте .val(), чтобы получить значение:

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

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

Удивительно, спасибо. Это сработало. – Richard

+1

'this.value' будет работать. –

+0

@Richard Нет проблем! – alexn

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() –

Смежные вопросы