Im folgenden Abschnitt habe ich zwei Methoden zur Auswahl eines Elements: Eingabe mit Datenliste und traditionelle Auswahl mit Optionen.Einstellen der Werte für versteckte Datenlistenoptionen
Das select-Element hält die Optionswerte verborgen, und wir können es immer noch mit this.value
erhalten. Mit dem Datenlistenprogramm wird der Wert jedoch tatsächlich angezeigt und der Textinhalt der Option wird als sekundäres Etikett angezeigt.
Was ich möchte, ist die Eingabe + datalist Ansatz verhalten sich wie eine traditionelle Auswahl, wo "Foo" und "Bar" als Optionen angezeigt werden, die bei Auswahl die Werte von "1" und "2" haben.
Ich habe auch einen wiederholten Namen "Foo" mit dem Wert "3" hinzugefügt. Dies soll zeigen, dass keine Lösung von eindeutigen Optionen abhängig sein darf.
<input list="options" onchange="console.log(this.value)"/>
<datalist id="options">
<option value="1">Foo</option>
<option value="2">Bar</option>
<option value="3">Foo</option>
</datalist>
<select onchange="console.log(this.value)">
<option value=""></option>
<option value="1">Foo</option>
<option value="2">Bar</option>
<option value="3">Foo</option>
</select>
Ich denke, diese Verbindung antwortet, was Sie wollen [How-to-display-the-text- in-datalist-html5-und-nicht-wert] (http://stackoverflow.com/questions/25616625/how-to-display-the-text-in-datalist-html5-and-not-value) – Arjun
@Arjun danke, ich habe diese Post auch gefunden, aber leider unterstützt nur einzigartige Anzeigewerte. Wenn zum Beispiel eine andere Option in meinem Beispiel "Foo" mit dem Wert "3" wäre, würde die Auswahl dieses Werts den Wert "1" anstelle von "3" ergeben. –
Was passiert, wenn der Benutzer "1" eingibt, sollte der Text "Foo" werden? Sollte '.value '' 1' oder '3' zurückgeben, wenn der Benutzer' Foo' manuell eintippt? – Oriol