MagicSuggest

http://jquery.org/
http://jquery.org/

Bootstrap や jQuery UI などを使ってホームページを作っていると装飾無しのフォームが少し寂しく感じてしまいませんか?

今回と次回で jQuery を使った combo box のプラグインを2つ紹介したいと思います。

MagicSuggest

MagicSuggest
Auto-suggest combo with bootstrap theme using jQuery
http://nicolasbize.github.com/magicsuggest/

MagicSuggest は Twitter Bootstrap 用にデザインされた combo box です。ライセンスは MIT licence で公開されています。

使い方は、ダウンロードしたファイルをサーバーに上げて、以下のようにして読み込めば OK です。

<link rel="stylesheet" href="magicsuggest-1.2.5.css">
<script type="text/javascript" src="magicsuggest-1.2.5.js"></script>

<select>をMagicSuggestでレンダリング

既存の <select> タグに適用したい場合は以下のようにします。

<select id="sample">
    <option value="AK">Alaska</option>
    <option value="HI">Hawaii</option>
    <option value="CA">California</option>
    <option value="NV">Nevada</option>
</select>

<script type="text/javascript">
    $('#sample').magicSuggest({});
</script>
http://code.rlated.net/jquery/combo/MagicSuggest.html
http://code.rlated.net/jquery/combo/MagicSuggest.html

MagicSuggestのオプション

MagicSuggest のオプションは非常に多いのでここで全ては紹介できませんが、一部だけ紹介したいと思います。

editable
デフォルト値: true
falseとするとconbo boxにキーボードで入力してサジェストが使えなくなります。
selectionPosition
デフォルト値: ‘inner’
‘right’とすると選択したアイテムをcombo boxの右側に、’bottom’とすると下側に表示します。
sortOrder
デフォルト値: null
指定した項目でソートします。
sortDir
デフォルト値: null
‘asc’もしくは’desc’でソートする際の昇順/降順を指定できます。

以下のサンプルでは、サジェストされる項目を昇順に並び替え、選択項目はフォームの右に表示します。

$('#sample').magicSuggest({
    editable: false,
    selectionPosition: 'right',
    sortOrder: 'name',
    sortDir: 'asc'
});
http://code.rlated.net/jquery/combo/MagicSuggest.html
http://code.rlated.net/jquery/combo/MagicSuggest.html

データをJSONで指定

Ajax 的なホームページで使いたい場合は JSON で data を指定できると便利と思います。

$('#sample').magicSuggest({
    groupBy注1: 'timeZone',
    data: 'data.json'
});
http://code.rlated.net/jquery/combo/MagicSuggest.html
http://code.rlated.net/jquery/combo/MagicSuggest.html

ちなみに、URL でなく直接 JSON データを記述することもできます。

$('#sample').magicSuggest({
    groupBy: 'timeZone',
    data: [
            { name: 'Alaska', value: 'AK', timeZone: 'Alaskan/Hawaiian Time Zone' },
            { name: 'Hawaii', value: 'HI', timeZone: 'Alaskan/Hawaiian Time Zone' }
          ]
});

サンプルコード

この記事で紹介したMagicSuggestのサンプルコードは下記でご覧になれます。
MagicSuggest – テストコード置き場


注1 groupBy を使うとサジェストでリストされる候補がグループ分けされて表示されます。

コメントを残す

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