Wie verwende ich jquery, um alle Eingaben auszuwählen, die nicht Senden, Zurücksetzen oder Schaltfläche sind?

Lesezeit: 1 Minute

Benutzer-Avatar
häufig

Ich versuche, alle Eingabeelemente außer input type=”submit/reset/button

Ich habe versucht, einen Selektor wie folgt zu erstellen:

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

Das funktioniert aber nicht, da die Submit-Buttons immer in die Endauswahl einfließen.

Irgendeine Idee, was mit dem oben falsch ist.

Vielen Dank!

Versuchen Sie, Ihren Selektor in Kette zu ändern .not(...) wie:

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

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

Dies macht es (wohl) einfacher zu lesen und sollte so funktionieren, wie Sie es erwarten.

  • Ich verwende es in einem Plugin, also stecke ich wohl mit dem miesen Selektor fest. Versuche immer noch…

    – häufig

    16. Februar 2012 um 23:52 Uhr

Benutzer-Avatar
Sean Kendel

Diese Antwort ist wohl schwerer zu lesen als die von Michael Robinson, aber ich finde sie prägnanter. Anstatt die auszuführen not() Funktion, können Sie diese mit auswählen :input um alle Formularelemente zu sammeln, dann mit filtern :not() Selektor für jeden unerwünschten Eingabetyp.

Aus der API-Dokumentation von jQuery (https://api.jquery.com/input-selector/):

Das :input selector wählt grundsätzlich alle Formularsteuerelemente aus.

Die “CSS”-ähnliche Selektorversion, die :not() Selektoren sind separat und können auch in CSS 3 verwendet werden:

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

1257260cookie-checkWie verwende ich jquery, um alle Eingaben auszuwählen, die nicht Senden, Zurücksetzen oder Schaltfläche sind?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy