(ich es nicht finden können, aber dann wieder, weiß ich wirklich nicht, wie es zu suchen.)Verwenden HTML5 (Datalist) zum automatischen Vervollständigung mit ‚enthält‘ Ansatz, nicht nur ‚beginnt mit‘
I möchte <input list=xxx>
und <datalist id=xxx>
verwenden, um Autovervollständigung zu erhalten, ABER ich möchte, dass der Browser alle Optionen nach "enthält" Ansatz statt "beginnt mit", die Standard zu sein scheint. Gibt es einen Weg?
Wenn nicht einfach, gibt es eine Möglichkeit, Vorschläge zu erzwingen, die ich zeigen möchte, nicht diejenigen, die der Browser angepasst hat? Sagen wir, ich tippe "foo" und möchte die Optionen "bar" und "baz" anzeigen. Kann ich das dem Benutzer aufzwingen? Wenn ich den Datalist nur mit denen (mit JS) fülle, wird der Browser immer noch die "Starts mit" Prüfung durchführen und sie herausfiltern.
Ich möchte die ultimative Kontrolle darüber, wie die Datenlistenoptionen zeigen. NICHT über seine Benutzeroberfläche, Flexibilität, Zugänglichkeit usw., also möchte ich es nicht komplett neu machen. Schlagen Sie nicht einmal ein jQuery-Plugin vor.
Wenn ich Formelement-Validierung ultimativ kontrollieren kann, warum nicht Autovervollständigung, richtig?
bearbeiten: Ich sehe jetzt, dass Firefox die 'enthält' Ansatz verwendet ... Das ist nicht einmal ein Standard? Irgendeine Möglichkeit, dies zu erzwingen? Kann ich den Weg von Firefox ändern?
edit: ich dies gemacht zu illustrieren, was Ich mag würde: http://jsfiddle.net/rudiedirkx/r3jbfpxw/
- HTMLWG's specs on
[list]
- W3's specs on
datalist
- DavidWalsh example
- HONGKIAT's summary on behaviors..?
Keine Hilfe zu diesem Thema? Kaum zu glauben ... das war das erste, woran ich dachte, als ich einen Datenspezialisten brauchte. –
das Problem ist, ist der Datenlisten nicht editierbar, zumindest in ie11. Dann bekomme ich diesen Fehler: '0x800a13b5 - JavaScript Laufzeitfehler: Zuweisung zu schreibgeschützten Eigenschaften ist im strikten Modus nicht erlaubt'. –
@NinaScholz Wann bekommen Sie diesen Fehler? Was was zuweisen? Kannst du eine Geige machen? – Rudie