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

Как использовать jquery для выбора всех входов, которые не отправляются, reset или кнопки?

Я пытаюсь выбрать все входные элементы, кроме типа ввода = "submit/ reset/button

Я попытался сделать селектор следующим образом:

inputSelector = 'input:not(input[type=button], input[type=submit], input[type=reset]), textarea, select';

Но это не работает, потому что кнопки отправки всегда делают окончательный выбор.

Любая идея, что не так с этим.

Спасибо!

4b9b3361

Ответ 1

Попробуйте изменить свой селектор на цепочку .not(...), например:

var inputs = $('input, textarea, select')
                .not(':input[type=button], :input[type=submit], :input[type=reset]');

$(inputs).each(function() {
    console.log(this.type);
});

Это делает его (возможно) более легким для чтения и должно работать так, как вы ожидаете.

Ответ 2

Этот ответ, пожалуй, сложнее читать, чем Майкл Робинсон, но я считаю его более кратким. Вместо того, чтобы запускать функцию not(), вы можете выбрать ее с помощью :input для сбора всех элементов формы, а затем фильтровать с псевдо-классом :not() для каждого нежелательного типа ввода.

Из документации API jQuery (https://api.jquery.com/input-selector/):

Селектор :input в основном выбирает все элементы управления формой.

Версия селектора типа "CSS", селектора :not() psuedo-element являются отдельными и могут также использоваться в CSS 3:

var inputs = $("#theForm").find(":input:not([type=button]):not([type=submit]):not([type=reset])");