jQuery EasyUI のコンボボックス(ComboBox)を使うサンプル。
xtesteasyui.html

- コンボボックスを用意する
<!-- HTML --> <input id="comboboxA" class="easyui-combobox" data-options=""></input>
あらかじめHTMLのinput要素として用意しておく。
// JavaScript
var gDataComboboxA = [
{ id: '0', value: 'Java' },
{ id: '1', value: 'c++' },
{ id: '2', value: 'perl' } ];
コンボボックスに必要なデータを「オブジェクトの配列」として用意する。属性(フィールド)はいくつでもよく、また属性名は任意で可。(初期化の際にマッピングする。)
// JavaScript
$('#comboboxA').combobox({
valueField: 'id',
textField: 'value',
data: gDataComboboxA
});
コンボボックスの初期化時にデータとの紐付けを行う。具体的には「表示される値」を’textField’で、「取得時の値」を’valueField’で指定する。(両者は同じでも可。)
上記の例では、コンボボックスには’Java’,'c++’…が表示され、Javaを選択すると値’0′が、c++を選択すると値’1′が得られる。なお、これはHTMLで以下のように書いても同じ。
<!-- HTML --> <input id="comboboxA" class="easyui-combobox" data-options="valueField:'id',textField:'value'" />
// JavaScript
$('#comboboxA').combobox({
multiple: true
});
multipleオプションをtrueに設定することで、複数選択可能になる。これは以下のHTMLと等価。
<!-- HTML --> <input id="comboboxA" class="easyui-combobox" data-options="multiple:true"></input>
// JavaScript
$('#comboboxA').combobox('getValue') // single select
($('#comboboxB').combobox('getValues')).join(',') // multi select
コンボボックスの値を取得するには、getValue()メソッド、またはgetValues()メソッドを使う。前者は単一選択用で、後者は複数選択可とした場合用で、結果は配列で返ってくる。上記の例ではjavascriptのjoin()関数を使って、カンマ区切りの文字列に変換している。
// JavaScript
$.messager.prompt('Add Value','Please input value:',function(v){
if (v){
var item = new Object();
item.id = v; // input value
item.value = v;
gDataComboboxA.push(item);
$('#comboboxA').combobox({
data : gDataComboboxA
});
$('#comboboxA').combobox('setValue',v);
}
});