J'essaie de sélectionner tous les éléments d'entrée sauf le type d'entrée = "soumettre/réinitialiser/bouton
J'ai essayé de faire un sélecteur comme celui-ci:
inputSelector = 'input:not(input[type=button], input[type=submit], input[type=reset]), textarea, select';
Mais cela ne fonctionne pas, car les boutons d'envoi font toujours partie de la sélection finale.
Toute idée de ce qui ne va pas avec ce qui précède.
Merci!
Essayez de modifier votre sélecteur pour chaîner .not(...)
comme:
var inputs = $('input, textarea, select')
.not(':input[type=button], :input[type=submit], :input[type=reset]');
$(inputs).each(function() {
console.log(this.type);
});
Cela le rend (sans doute) plus facile à lire, et devrait fonctionner comme vous vous y attendez.
Cette réponse est sans doute plus difficile à lire que celle de Michael Robinson, mais je la trouve plus succincte. Plutôt que d'exécuter la fonction not()
, vous pouvez la sélectionner à l'aide de :input
Pour rassembler tous les éléments du formulaire, puis filtrer avec la pseudo-classe :not()
pour chaque type d'entrée indésirable.
De la documentation de l'API jQuery ( https://api.jquery.com/input-selector/ ):
Le sélecteur
:input
Sélectionne essentiellement tous les contrôles de formulaire.
La version du sélecteur de type "CSS", les sélecteurs d'éléments :not()
psuedo sont séparés et peuvent également être utilisés dans CSS 3:
var inputs = $("#theForm").find(":input:not([type=button]):not([type=submit]):not([type=reset])");