jQueryで<select >のオプションを動的にフィルタリングするには?
<select >
<option value="something">something</option>
<option value="something_else">something else</option>
</select>
<input type="text" >
ユーザが何かを入力すると、その入力に一致する値を持つオプションだけが表示されるようにします。
39
9
HTMLの例:
同じ値で複数のオプションがある理由はよくわかりませんが、次のようになります。
他のすべてとは少し異なりますが、これが最も単純だと思います。
これは簡単な解決策で、リストのオプションをクローンしてオブジェクトに保存しておき、後で復元できるようにするものです。スクリプトはリストを一掃し、入力テキストを含むオプションだけを追加します。これはクロスブラウザでも動作するはずです。この投稿を参考にしました:https://stackoverflow.com/a/5748709/542141
HTML
またはカミソリ
スクリプト
他のほとんどのソリューションよりもはるかに単純なコード。 テキストを探し(ケースが鈍感)、CSSを使用して内容を非表示/表示します。 データのコピーを保存するよりもはるかに優れています。
このメソッドに、選択ボックスのIDと、フィルターを含む入力のIDを渡します。
Lessanの回答を更新して、オプションの属性も維持します。
スタックオーバーフローで答えるのはこれが初めてなので、彼の答えを編集するか、自分で作成するかはわかりません。
これと同様の問題があったので、受け入れられた回答を変更して、より一般的なバージョンの関数を作成しました。 ここに置いておきたいと思った。
select2プラグインを使用して、このようなフィルターを作成できます。 これにより、多くのコーディング作業を回避できます。 https://select2.github.io/からプラグインを取得できます。
このプラグインは適用が非常に簡単で、高度な作業でも簡単に実行できます。 :)。