Kann ich das erforderliche Attribut anwenden auf Felder in HTML?

Lesezeit: 6 Minuten

Matts Benutzeravatar
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? :/

  • 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

Benutzeravatar von mplungjan
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

Benutzeravatar von pradip garala
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.

Benutzeravatar von james.garriss
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>

Benutzeravatar von JBallin
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.


w3schools

Das value-Attribut gibt den Wert an, der an einen Server gesendet werden soll, wenn ein Formular gesendet wird.

Beispiel

  • 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


Benutzeravatar von yatou
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


Benutzeravatar von sayyed tabrez
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


1446230cookie-checkKann ich das erforderliche Attribut anwenden auf Felder in HTML?

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

Privacy policy