Wie kann ich überprüfen, ob ein Benutzer etwas von a ausgewählt hat <select>
Feld im HTML?
Ich verstehe <select>
unterstützt das Neue nicht required
Attribut … muss ich dann JavaScript verwenden? Oder fehlt mir etwas? :/
Matt
Wie kann ich überprüfen, ob ein Benutzer etwas von a ausgewählt hat <select>
Feld im HTML?
Ich verstehe <select>
unterstützt das Neue nicht required
Attribut … muss ich dann JavaScript verwenden? Oder fehlt mir etwas? :/
mplungjan
Obligatorisch: Lassen Sie den ersten Wert leer – erforderlich, funktioniert mit leeren Werten
Voraussetzungen: korrekter html5 DOCTYPE und ein benanntes Eingabefeld
<select name="somename" required>
<option value="">Please select</option>
<option value="one">One</option>
</select>
Gem die Dokumentation (die Auflistung und fett ist von mir)
Das erforderliche Attribut ist ein boolesches Attribut.
Wenn angegeben, muss der Benutzer vor dem Absenden des Formulars einen Wert auswählen.Wenn ein ausgewähltes Element
- hat ein erforderliches Attribut angegeben,
- hat kein mehrfaches Attribut angegeben,
- und eine Anzeigegröße von 1 hat (nicht SIZE=2 oder mehr haben – weglassen, wenn nicht benötigt);
- und ob der Wert des ersten Optionselements in der Optionsliste des Auswahlelements (falls vorhanden) die leere Zeichenfolge ist (dh vorhanden als
value=""
),- und der Elternknoten dieses Optionselements ist das select-Element (und kein optgroup-Element),
dann ist diese Option die Platzhalterbeschriftungsoption des ausgewählten Elements.
Damit der Benutzer die Nicht-Option nicht auswählen kann, sobald sie ausgewählt wurde:
– coolaj86
7. November 2012 um 17:37 Uhr
@CoolAJ86 Funktioniert gut in Chrome 23, Firefox 16 und IE 10.
– KTB
8. Januar 2013 um 9:18 Uhr
Die Paraphrasierung der Dokumentation ist sehr hilfreich; Danke
– Nikodaemus
30. April 2015 um 14:08 Uhr
Du kannst den … benutzen :valid
css-Selektor, um einen benutzerdefinierten Stil auf ein ausgewähltes Element anzuwenden, je nachdem, ob der leere Wert ausgewählt ist.
– Huss
5. Oktober 2016 um 1:26 Uhr
Aufklärung über die disabled
Attribut für die Platzhalteroption: funktioniert gut in Safari, schlägt jedoch in Firefox 74 fehl (das zweite Optionselement wird ausgewählt, wenn die Seite angezeigt wird.)
– fbitterlich
17. April 2020 um 14:22 Uhr
Der <select>
Element unterstützt die required
Attribut, gemäß der Spezifikation:
Welcher Browser berücksichtigt das nicht?
(Natürlich müssen Sie trotzdem auf dem Server validieren, da Sie nicht garantieren können, dass Benutzer JavaScript aktiviert haben.)
Ich bin sicher, er brauchte nur ein value=”” für den ersten Eintrag – wenn es kein value-Attribut oder einen Wert für alle Optionen gibt, kann das erforderliche nicht ausgelöst werden, da die Auswahl einen tatsächlichen Wert zurückgibt
– mplungjan
18. Mai 2011 um 18:39 Uhr
@mplungjan: Ahgotcha – gut entdeckt.
– Paul D. Waite
18. Mai 2011 um 18:45 Uhr
@PaulD.Waite Können wir immer noch nicht garantieren, dass Javascript aktiviert ist? Ich bin jetzt erst seit etwa 2 Jahren in der Webentwicklung und bin noch nie auf dieses Problem gestoßen.
– Benutzer137717
16. August 2015 um 0:46 Uhr
@ user137717: Es ist das Internet. Du kannst nichts garantieren. Sie können natürlich entscheiden, dass es sich nicht lohnt, sich darum zu kümmern.
– Paul D. Waite
17. August 2015 um 6:35 Uhr
pradip garala
Ja, es funktioniert:
<select name="somename" required>
<option value="">Please select</option>
<option value="one">One</option>
</select>
Sie müssen die erste Option leer lassen.
james.garriss
Du kannst den … benutzen selected
-Attribut für das Optionselement, um standardmäßig eine Auswahl auszuwählen. Du kannst den … benutzen required
-Attribut für das select-Element, um sicherzustellen, dass der Benutzer etwas auswählt.
In Javascript können Sie das überprüfen selectedIndex
-Eigenschaft, um den Index der ausgewählten Option abzurufen, oder Sie können die überprüfen value
-Eigenschaft, um den Wert der ausgewählten Option abzurufen.
Gemäß der HTML5-Spezifikation selectedIndex
“gibt den Index des ersten ausgewählten Elements zurück, falls vorhanden, oder −1, wenn es kein ausgewähltes Element gibt. And value
“gibt den Wert des ersten ausgewählten Elements zurück, falls vorhanden, oder die leere Zeichenfolge, wenn es kein ausgewähltes Element gibt.” Wenn also selectedIndex = -1, dann wissen Sie, dass sie nichts ausgewählt haben.
<button type="button" onclick="displaySelection()">What did I pick?</button>
<script>
function displaySelection()
{
var mySelect = document.getElementById("someSelectElement");
var mySelection = mySelect.selectedIndex;
alert(mySelection);
}
</script>
JBallin
Sie müssen die einstellen value
Attribut von option
zum leeren String:
<select name="status" required>
<option selected disabled value="">what's your status?</option>
<option value="code">coding</option>
<option value="sleep">sleeping</option>
</select>
select
werde die zurückgeben value
der Ausgewählten option
an den Server, wenn der Benutzer drückt submit
auf der form
. Ein leeres value
ist dasselbe wie leer text
Eingabe -> Anheben der required
Nachricht.
Das value-Attribut gibt den Wert an, der an einen Server gesendet werden soll, wenn ein Formular gesendet wird.
Dies ist die perfekteste Antwort, wenn Sie versuchen, sich zu bewerben required
Attribut, gelten :invalid
CSS-Pseudoklasse, weil sie in allen Browsern funktioniert! Die andere Antwort, die nein hat required
Und selected
Attribute ein <option>
Element mit required
Attribut ein <select>
Element funktioniert nicht oder kann nicht mit CSS angewendet werden :invalid
.
– v
31. März 2022 um 7:25 Uhr
jatu
<form action="">
<select required>
<option selected disabled value="">choose</option>
<option value="red">red</option>
<option value="yellow">yellow</option>
<option value="green">green</option>
<option value="grey">grey</option>
</select>
<input type="submit">
</form>
Dies ist die perfekteste Antwort, wenn Sie versuchen, sich zu bewerben required
Attribut, gelten :invalid
CSS-Pseudoklasse, weil sie in allen Browsern funktioniert! Die andere Antwort, die nein hat required
Und selected
Attribute ein <option>
Element mit required
Attribut ein <select>
Element funktioniert nicht oder kann nicht mit CSS angewendet werden :invalid
.
– v
31. März 2022 um 7:25 Uhr
Sayyed Tabrez
versuchen Sie dies, das wird funktionieren, ich habe dies versucht und das funktioniert.
<!DOCTYPE html>
<html>
<body>
<form action="#">
<select required>
<option value="">None</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
<input type="submit">
</form>
</body>
</html>
Bitte fügen Sie Ihrer Antwort eine Erklärung hinzu, damit andere daraus lernen können
– Nico Haase
28. September 2021 um 8:57 Uhr
Wenn Sie an Browser-übergreifender Kompatibilität interessiert sind, müssen Sie wahrscheinlich JavaScript verwenden. Das gewünschte Attribut ist
selectedIndex
.– Lukas Sneeringer
18. Mai 2011 um 17:34 Uhr
Gemäß dem aktuellen Editor-Entwurf der HTML5-Spezifikation (6. August 2011) hat das select-Element ein erforderliches Attribut. “Das erforderliche Attribut ist ein boolesches Attribut. Wenn angegeben, muss der Benutzer vor dem Absenden des Formulars einen Wert auswählen.” dev.w3.org/html5/spec/Overview.html#the-select-element
– james.garriss
9. August 2011 um 18:25 Uhr