Aloha ;)
mir ist eben ein Verhalten bei der Verwendung von DataList aufgefallen, das vielleicht erwähnenswert ist.
Folgendes Minimalbeispiel funktioniert nämlich nicht wie von mir intendiert:
<input type="text" list="myList" />
<datalist id="myList">
<option>1 Leerzeichen</option>
<option>2 Leerzeichen</option>
<option>3 Leerzeichen</option>
</datalist>
Sowohl Chrome als auch Firefox "optimieren die Leerzeichen weg" - das entspricht ja auch dem Standard-Verhalten, wenn man mehr als ein Leerzeichen hintereinander irgendwo im HTML-Code stehen hat.
Es führt nur leider in diesem Fall dazu, dass die String-Werte, mit denen ich im späteren Programm-Verlauf wieder vergleichen muss, dann eben nicht genau übereinstimmen. Klar wärs cool, wenn in meinen Werten gar keine (sinnlosen) doppelten Leerzeichen vorkommen - aber darüber habe ich leider keine Kontrolle.
Folgendes führt allerdings zum Ziel:
<input type="text" list="myList" />
<datalist id="myList">
<option value="1 Leerzeichen"></option>
<option value="2 Leerzeichen"></option>
<option value="3 Leerzeichen"></option>
</datalist>
Weil die Werte hier in ""
eingeschlossen sind werden sie genau so übernommen wie sie sind - und ich kann den eingetragenen String dann nachher auch problemlos wieder zu Vergleichen heranziehen.
Nun meine Frage: Übersehe ich irgendwelche Nachteile am "Weg Nr. 2"?
Sollte man vielleicht gar generell empfehlen, die Werte für Options immer ins value-Feld zu packen (und nur im Ausnahmefall zusätzlich ins innerHTML)?
Unser Wiki legt aktuell nahe, dass es andersrum sei - dass man den Wert möglichst ins innerHTML schreiben soll und nur bei abweichenden values auch tatsächlich das value-Attribut benutzt. Das ist das Gegenteil von dem, was ich jetzt spontan - dem oben genannten usecase nach, außer ich übersehe was - für empfehlenswert halte.
Bin mal gespannt auf ein paar Meinungen/Erfahrungen/Erkenntnisse eurerseits!
Grüße,
RIDER