jQuery abrufen, nur Textfelder, die einen nicht-leeren Wert
In jQuery, wie bekomme ich nur die Textfelder, die einen nicht-leeren Wert?
Beispiel:
<input type="text" id="i1" value="" />
<input type="text" id="i2" value="bla bla" />
<textarea id="i3">more bla bla</textarea>
<input type="text" id="i4" value="" />
Wie kann ich eine Abfrage schreiben, die können mir nur die Eingänge i2 und i3? (in einer Aufnahme, die ich versuche zu vermeiden, eine "for" - Schleife)
Dank!
- Es gibt kein Attribut als
val
im HTML-Format. Es istvalue
für den input, aber nicht für die textarea. - Reden wir leer
value
Eigenschaften oder eine leere input-Felder im Allgemeinen (D. H. Felder, die leer sind, nachdem der Benutzer hatte die Möglichkeit zum einfügen von Daten)? - Ich bin mir ziemlich sicher, dass es einen Wert für Texteingabefelder
- Nein, es ist nicht. Ja, die entsprechende DOM-element hat ein
value
- Eigenschaft, aber es gibt keine solche HTML-Attribut. - Ich weiß nicht wirklich so denken: w3.org/TR/html401/interact/forms.html#edef-TEXTAREA
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst Ihren HTML sollte eigentlich so Aussehen:
Ich nehme an, den meisten Browsern standardmäßig
type="text"
für input-Felder, wenn es nicht angegeben, aber ich glaube nicht, dass Sie auf Sie zählen können, um herauszufinden, dassval
bedeutetvalue
. Schließlich, textarea text hat zu gehen, zwischen den<textarea>
tags.Auf Ihre Frage, obwohl. Diese Linie wird tun, was Sie wollen:
Können Sie die jQuery - grep - Funktion, die eine Schleife durch ein array und behält nur die Werte erfüllen (return einen Wert truthy aus) die Funktion Sie passieren zu
$.grep
. In diesem Fall ist das array, das Sie vorbei sind ist ein array von jQuery-Objekten, die mit der$('input[type="text"], textarea')
Selektor, d.h. text-Felder und Texteingabefelder. Die Funktion, die Sie übergeben haben, um die Elemente auswählen, die Sie wollen, gibt einfach den Wert des Textfeldes oder der textarea. Wenn es leer ist, dann ist der Rückgabewert ist falsy, und der Knoten wird ausgeschlossen, und wenn es eine nicht-leere Zeichenfolge, dann ist der Rückgabewert ist truthy, und der Knoten enthalten ist.$.grep
hier ist, dass es ein array zurückgibt, nicht ein jQuery-Objekt. Mit.filter()
mehr Sinn machen würde. Und ja, der Standardtyp für Eingabe Felder isttext
.Dieser würde die Aufgabe:
Wenn du das value-Attribut, dann könnte dieses geschehen:
textarea
s nicht einvalue
Attribut trotzdem.Können Sie den Attribut-Selektor mit a != Bewertung: