Chosenプラグインの基本的な使い方

セレクトボックスの選択肢が多い場合、ユーザーにとって使いづらいものになってしまいます。何か良い方法はないかと探していたのですが、ChosenというjQueryプラグインを見つけました。この記事ではChosenの使い方を簡単に紹介します!

Chosenプラグインとは

Chosenプラグインとは、セレクトボックスをユーザーにとって使いやすくするためのjQueryプラグインです。下記のリンク先にサンプルと使い方の説明があります。FAQsにオプションの一覧ページへのリンクがありますので、使用できるオプションが知りたければ、オプション一覧のページを見てください。

Chonseプラグイン
https://harvesthq.github.io/chosen/

オプション一覧
https://harvesthq.github.io/chosen/options.html

Chosenの基本的な使い方

セレクトボックスを用意する

まずは通常のセレクトボックスを用意します。今回は選択肢が多い例として、都道府県を選択するセレクトボックスを作成しました。次にhtmlのコードと実行結果を示します。これで単純なセレクトボックスができました。

コード

実行結果

必要なファイルの読み込み

Chosenプラグインを使うためには、下記のjsファイルとcssファイルを読み込む必要があります。

  • jquery.min.js
  • chosen.jquery.min.js
  • chosen.min.css

ソースファイルをダウンロードしても良いのですが、今回は手軽に試すことができるCDNサービスを利用することにします。次のリンク先のcdnjsでは、3000以上のライブラリが配信されているようですので、色々試してみたい場合には便利だと思います。

cdnjs
https://cdnjs.com/

サイトにアクセスすると、このような検索ボックスが表示されます。検索ボックスに「jquery」と入力すると、次のような検索結果一覧が表示されます。

これで「jquery.min.js」のリンクがわかりました。次に「chosen」を検索してみてください。

一覧の中のライブラリ名「chosen」をクリックすると次のページに移動して、関連するファイルの情報も取得できます。

これで「chosen.jquery.min.js」と「chosen.min.css」のリンクがわかりました。これらの情報をHTMLのheadタグに記述します。次の内容を先ほど作成した 「index.html」に追記しましょう。

chosenプラグインを有効化する

https://harvesthq.github.io/chosen/の「Setup」に書かれている通り、プラグインを有効にするには、次のようにJavaScriptを実行します。この例では、”chosen-select”というクラスがついたselect要素に対して、プラグインを有効にします。id属性やHTMLタグを直接指定することもできます。

$(".chosen-select").chosen()

先ほど作成したselect要素にクラス属性を追加して、このコードをscriptタグに記述すれば、セレクトボックスが変化します。結果として、htmlコードは次のようになります。4〜6行目で必要なファイルの読み込み、63行目でプラグインを有効化しています。select要素をクラス名で指定するために、11行目にクラス属性の指定を追記しました。

これで実行結果に示すようなセレクトボックスを作成することができます。セレクトボックスに検索機能がついたことで、かなり使いやすくなったと思います。実行結果の図では、検索ボックスに「東」と入力して、選択肢を絞り込んでいます。

コード

実行結果

複数選択の場合

select要素の「multiple属性」を指定すると、選択肢を複数選択できるようになります。Chosenプラグインは複数選択にも対応しています。基本的な使い方は、単一選択と同じで、次のようにmultiple属性を追加するだけです。

<select class="chosen-select" multiple>

実行すると次のようなセレクトボックスになります。この例では、まず岩手県と青森県を選択しています。選択した項目は検索ボックスに追加され、セレクトボックスでは選択できない状態になります。項目名の右にある✖️をクリックすると、選択を解除できます。一番右の図は、「青森県」の選択を解除した状態になります。とても使いやすいですね!

実行結果

まとめ

今回の記事では、Chosenプラグインの基本的な使い方を紹介しました!今後も便利なプラグインが見つかりましたら、紹介をしていきたいと思います!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です