Как использовать jquery для выбора всех входов, которые не отправляются, reset или кнопки?
Я пытаюсь выбрать все входные элементы, кроме типа ввода = "submit/ reset/button
Я попытался сделать селектор следующим образом:
inputSelector = 'input:not(input[type=button], input[type=submit], input[type=reset]), textarea, select';
Но это не работает, потому что кнопки отправки всегда делают окончательный выбор.
Любая идея, что не так с этим.
Спасибо!
Ответы
Ответ 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])");