Подтвердить что ты не робот

Как выбрать пустые входы (value = "") с помощью jQuery

Как я могу проверить пустые значения полей ввода (required) в разделе, а затем добавить к ним класс в событии с помощью jQuery? До сих пор я пробовал:

jQuery("#sender_container input.required").val("").addClass("error");

Но это кажется SET значением, а не проверкой. Любые идеи?

4b9b3361

Ответ 1

jQuery("#sender_container input.required").filter(function() {
    return !this.value;
}).addClass("error");​

Почему вы должны использовать filter, а не [value=""], вы можете увидеть в этот DEMO

Причина: селектора атрибутов проверяют начальное состояние элемента, а не текущее состояние. (обратите внимание, что вы можете изменить "начальное" состояние с помощью функции attr, но это плохая практика, вы всегда должны использовать prop)

Итак, если вы измените входное значение, текущее значение не будет влиять на селектор атрибутов. не мудрый... :)

Примечания:

  • .val() возвращает значение элемента формы и разбивает цепочку jQuery, $('selector').val().addClass('foo') Ошибка, возвращаемое значение представляет собой строку \ номер

  • .val(valueToSet) устанавливает значение элемента формы и не разрушает цепочку jQuery.
    $('selector').val("some value").addClass('foo') - Действительный, возвращаемое значение - это jQuery

Ответ 2

$('input:text[value=]','#sender_container').addClass('error');

DEMO

Ответ 3

$('#sender_container input.required[value=""]').addClass('error')

Ответ 4

jQuery('#sender_container input.required[value=""]').addClass("error");

Вы можете попробовать следующее:

$('input:not([value!=""])').addClass('error');

DEMO

Примечание. Этот ответ не должен использоваться, и единственная причина, по которой он не был удален, - это его можно узнать из.

Ответ 5

$field = $("#sender_container input.required");
if( ! $field.val())
{
    $field.addClass("error");
}

этот простой способ может работать.

Ответ 6

Если вам нужно выбрать только исходное значение атрибута входа, выполните следующие действия:

var elements = $('#sender_container input.required[value=""]')

Но имейте в виду, что это не будет работать, если атрибут value отсутствует. Он также не будет работать для текущего входного значения, если он был изменен пользователем или script.

Если вы хотите получить текущее значение ввода, вы можете использовать функцию jquery filter:

var elements = $('#sender_container input.required').filter(function() {
  return this.value === '';

  // alternatively for "no value":
  // return !this.value;
})

После того, как вы выбрали элементы jquery, вы можете добавить свой класс:

elements.addClass('error');

Ответ 7

чтобы проверить все поля, которые могут помочь.

$('#sender_container [required]').each(function(index)
{
       if (!($(this).val())) $(this).addClass('error');
}

});