Ich habe eine sehr seltsame Anforderung, bei der standardmäßig keine Option im Dropdown-Menü in HTML ausgewählt sein muss. Jedoch,
Ich kann das nicht benutzen,
<select>
<option></option>
<option>Option 1</option>
<option>Option 2</option>
<option>Option 3</option>
</select>
Dafür muss ich eine Validierung durchführen, um die erste Option zu handhaben. Kann mir jemand helfen, dieses Ziel zu erreichen, ohne die erste Option als Teil des Auswahl-Tags aufzunehmen?
Antworten:
Vielleicht ist das hilfreich
-- select an option --
Wird standardmäßig angezeigt. Wenn Sie jedoch eine Option auswählen, können Sie sie nicht wieder auswählen.Sie können es auch ausblenden, indem Sie ein Leerzeichen hinzufügen
option
<option style="display:none">
es wird also nicht mehr in der Liste angezeigt.
Option 2
Wenn Sie kein CSS schreiben möchten und dasselbe Verhalten wie bei der obigen Lösung erwarten, verwenden Sie einfach:
<option hidden disabled selected value> -- select an option -- </option>
quelle
<option hidden disabled selected value> -- select an option -- </option>
Sie können Javascript verwenden, um dies zu erreichen. Versuchen Sie den folgenden Code:
HTML
JS
oder JQuery
quelle
required
Attribut für dasselect
Element verwenden und senden, ohne eine Option auszuwählen, schlägt die Formularüberprüfung fehl und Sie müssen eine Auswahl treffen. Deshalb mag ich diesen Ansatz sehr. (Zumindest in Chrome getestet)Heute (25.02.2015)
Dies ist gültiges HTML5 und sendet ein Leerzeichen (kein Leerzeichen) an den Server:
Überprüfte Gültigkeit auf http://validator.w3.org/check
Verifiziertes Verhalten mit Win7 (IE11 IE10 IE9 IE8 FF35 Safari5.1) Ubuntu14.10 (Chrome40, FF35) OSX_Yosemite (Safari8, Chrome40) Android (Samsung-Galaxy-S5)
Im Folgenden geht auch die Validierung heute , sondern geht eine Art von Leerzeichen zu den Server von den meisten Browsern (wahrscheinlich nicht wünschenswert) und eine leere auf andere (Chrome40 / Linux passiert ein Leerzeichen):
Zuvor (2013-08-02)
Gemäß meinen Anmerkungen hat die nicht unterbrechende Entität in den oben gezeigten Options-Tags 2013 den folgenden Fehler verursacht:
Zu diesem Zeitpunkt war ein reguläres Leerzeichen XHTML4 gültig und hat von jedem Browser ein Leerzeichen (kein Leerzeichen) an den Server gesendet:
Zukunft
Es würde mein Herz freuen, wenn die Spezifikation aktualisiert würde, um ausdrücklich eine leere Option zuzulassen. Verwenden Sie vorzugsweise die kürzeste Syntax. Beides wäre großartig:
Testdatei
quelle
Setzen Sie einfach "versteckt" auf die Option, die Sie in der Dropdown-Liste verstecken möchten.
quelle
Lösung, die nur mit CSS funktioniert:
A: Inline-CSS
B: CSS-Stylesheet
Wenn Sie eine CSS-Datei zur Hand haben, können Sie die erste
option
mit folgenden Zielen ausrichten:quelle
Dies sollte helfen:
https://www.w3schools.com/tags/att_select_required.asp
quelle
In diesem Fall können Sie eine benutzerdefinierte Validierung vermeiden.
quelle
Nur eine kleine Bemerkung:
Einige Safari-Browser scheinen weder das Attribut "versteckt" noch die Stileinstellung "display: none" zu berücksichtigen (getestet mit Safari 12.1 unter MacOS 10.12.6). Ohne expliziten Platzhaltertext zeigen diese Browser einfach eine leere erste Zeile in der Liste der Optionen an. Es kann daher nützlich sein, immer einen erläuternden Text für diesen "Dummy" -Eintrag anzugeben:
Dank des Attributs "deaktiviert" wird es sowieso nicht aktiv ausgewählt.
quelle
Ich verstehe, was Sie versuchen zu tun. Der beste und erfolgreichste Weg ist:
quelle
Ich fand es wirklich interessant, weil ich vor nicht allzu langer Zeit das Gleiche erlebt habe. Ich bin jedoch im Internet auf ein Beispiel für die diesbezügliche Lösung gestoßen.
Siehe ohne weiteres das folgende Codefragment:
Damit bleibt es jederzeit nicht einreichbar, aber auswählbar. Mehr Komfort für die Benutzeroberfläche und ideal für die Benutzererfahrung.
Nun, das ist alles, ich hoffe es hilft. Prost!
quelle
Es gibt keine HTML-Lösung. Nach der HTML 4.01-Spezifikation ist das Browserverhalten undefiniert, wenn keines der
option
Elemente dasselected
Attribut hat. In der Praxis machen Browser die erste Option vorausgewählt.Um dieses Problem zu umgehen, können Sie das
select
Element durch eine Reihe voninput type=radio
Elementen (mit demselbenname
Attribut) ersetzen . Dadurch wird ein Steuerelement der gleichen Art mit unterschiedlichem Erscheinungsbild und unterschiedlicher Benutzeroberfläche erstellt. Wenn keines derinput type=radio
Elemente daschecked
Attribut hat, wird in den meisten modernen Browsern zunächst keines ausgewählt.quelle
Ich verwende das Laravel 5-Framework und die Antwort von @Gambi hat auch für mich funktioniert, aber mit einigen Änderungen für mein Projekt.
Ich habe die Optionswerte in einer Datenbanktabelle und verwende sie mit einer foreach-Anweisung. Aber vor der Anweisung habe ich eine Option mit @Gambit vorgeschlagenen Einstellungen hinzugefügt und es hat funktioniert.
Hier mein Beispiel:
Ich hoffe das hilft auch jemandem. Mach weiter so!
quelle
Versuche dies:
Die erste Option in der Dropdown-Liste wäre leer.
quelle
Um anzuzeigen, wählen Sie bitte einen Wert in der Dropdown-Liste und blenden Sie ihn aus, nachdem ein Wert ausgewählt wurde. Bitte verwenden Sie den folgenden Code.
Es wird auch die erforderliche Validierung unterstützen.
quelle
Wenn Sie Angular (2+) (oder ein anderes Framework) verwenden, können Sie eine Logik hinzufügen. Die Logik wäre: Nur eine leere Option anzeigen, wenn der Benutzer noch keine andere ausgewählt hat. Nachdem der Benutzer eine Option ausgewählt hat, verschwindet die leere Option.
Für Angular (9) würde dies ungefähr so aussehen:
quelle
Versuche dies:
Validiert in HTML5. Funktioniert mit
required
Attributen im Auswahlelement. Kann erneut ausgewählt werden. Funktioniert in Google Chrome 45, Internet Explorer 11, Edge, Firefox 41.quelle