技術的な観点から見ると、それらは完全に異なります。<datalist>
他の要素のオプションの抽象コンテナです。あなたの場合はそれを使用しまし<input type="text"
たが、範囲、色、日付などでも使用できます。http://demo.agektmr.com/datalist/
オートコンプリートの一種としてテキスト入力でそれを使用する場合、実際の問題は次のとおりです。その場合、答えはもう少し明白だと思います。
テキスト フィールドのオプションのリストとしてを使用することに焦点を当てる<datalist>
と、それと選択ボックスの特定の違いがいくつかあります。
<datalist>
フィード テキスト ボックスには、表示ラベルと送信の両方に 1 つの文字列があります。選択ボックスには、送信値と表示ラベルが異なる場合があります<option value='ie'>Internet Explorer</option>
。
フィード テキスト ボックスは、表示を整理するためのタグをサポート<datalist>
していません。<optgroup>
<datalist>
でできるように、ユーザーをオプションのリストに制限することはできません<select>
。
onchangeイベントの動作は異なります。要素では、<select>
onchange イベントは変更直後に発生しますが
<input type="text"
、要素がフォーカスを失うか、ユーザーが Enter キーを押した後にイベントが発生します。
<datalist>
ブラウザ間でのサポートは本当にむらがあります。利用可能なすべてのオプションを表示する方法には一貫性がなく、事態は悪化するばかりです。
最後の点は、私の意見では本当に大きなものです。より普遍的なオートコンプリート フォールバックが必要になるため、<datalist>
. さらに、まともなオートコンプリートプラグインを使用すると、オプションの表示をスタイルする方法が可能になりますが、そうではあり<datalist>
ません. 好きなように操作できる要素が<datalist>
受け入れられた場合、それは本当に素晴らしいことです! <li>
しかし、いいえ。
また、私が知る限り、<datalist>
検索は文字列の先頭から完全に一致します。その<option value="internet explorer">
ため、「explorer」を検索した場合、結果は得られません。ほとんどのオートコンプリート プラグインは、テキスト内の任意の場所を検索します。
私は<datalist>
、ユーザーが最新の Chrome または Firefox を使用しており、偽の値を送信しようとしないことが 100% 確実にわかっている内部ページの迅速で怠惰な便利なヘルパーとしてのみ使用しました。それ以外の場合は、<datalist>
ブラウザのサポートが非常に貧弱であるため、 の使用を推奨するのは困難です。