jQuery EasyUI フォームプラグイン -Combobox コンボボックス
jQuery EasyUI プラグイン
$.fn.combo.defaults から拡張されています。$.fn.combobox.defaults を使用してデフォルトの defaults を上書きします。
コンボボックス(combobox)は、編集可能なテキストボックスとドロップダウンリストを表示します。ユーザーはドロップダウンリストから1つまたは複数の値を選択できます。ユーザーはリストの先頭にテキストを直接入力するか、リストから既存の値を1つまたは複数選択できます。
依存関係
- combo
使用法
事前定義された構造を持つ <select> 要素からコンボボックス(combobox)を作成します。
<select id="cc" class="easyui-combobox" name="dept" style="width:200px;">
<option value="aa">aitem1</option>
<option>bitem2</option>
<option>bitem3</option>
<option>ditem4</option>
<option>eitem5</option>
</select>
<input> タグからコンボボックス(combobox)を作成します。
<input id="cc" class="easyui-combobox" name="dept"
data-options="valueField:'id',textField:'text',url:'get_data.php'">
JavaScript を使用してコンボボックス(combobox)を作成します。
<input id="cc" name="dept" value="aa">
$('#cc').combobox({
url:'combobox_data.json',
valueField:'id',
textField:'text'
});
依存関係のある2つのコンボボックス(combobox)を作成します。
<input id="cc1" class="easyui-combobox" data-options="
valueField: 'id',
textField: 'text',
url: 'get_data1.php',
onSelect: function(rec){
var url = 'get_data2.php?id='+rec.id;
$('#cc2').combobox('reload', url);
}">
<input id="cc2" class="easyui-combobox" data-options="valueField:'id',textField:'text'">
JSON データ形式の例:
[{
"id":1,
"text":"text1"
},{
"id":2,
"text":"text2"
},{
"id":3,
"text":"text3",
"selected":true
},{
"id":4,
"text":"text4"
},{
"id":5,
"text":"text5"
}]
プロパティ
このプロパティはコンボ(combo)から拡張されています。以下はコンボボックス(combobox)に追加されたプロパティです。
| 名前 | 型 | 説明 | デフォルト値 |
|---|---|---|---|
| valueField | string | このコンボボックス(ComboBox)の value にバインドされる基本データの名前。 | value |
| textField | string | このコンボボックス(ComboBox)の text にバインドされる基本データの名前。 | text |
| groupField | string | グループ化するフィールドを指定します。このプロパティはバージョン 1.3.4 以降で使用できます。 | null |
| groupFormatter | function(group) | グループ化された項目に表示するグループテキストを返します。このプロパティはバージョン 1.3.4 以降で使用できます。 コード例:
$('#cc').combobox({
groupFormatter: function(group){
return '<span style="color:red">' + group + '</span>';
}
});
|
|
| mode | string | テキストが変更されたときにリストデータを読み込む方法を定義します。コンボボックス(combobox)がサーバーから読み込む場合は 'remote' に設定します。'remote' モードに設定すると、ユーザーが入力した値は新しいデータを取得するために 'q' という名前の HTTP リクエストパラメータとしてサーバーに送信されます。 | local |
| url | string | リモートからリストデータを読み込むための URL。 | null |
| method | string | データを取得するための HTTP メソッド。 | post |
| data | array | 読み込まれるリストデータ。 コード例:
<input class="easyui-combobox" data-options="
valueField: 'label',
textField: 'value',
data: [{
label: 'java',
value: 'Java'
},{
label: 'perl',
value: 'Perl'
},{
label: 'ruby',
value: 'Ruby'
}]" />
|
null |
| filter | function | 'mode' が 'local' に設定されている場合にローカルデータをフィルタリングする方法を定義します。この関数には2つのパラメータがあります: q:ユーザーが入力したテキスト。 row:リストの行データ。 true を返すとその行を表示できます。 コード例:
$('#cc').combobox({
filter: function(q, row){
var opts = $(this).combobox('options');
return row[opts.textField].indexOf(q) == 0;
}
});
|
|
| formatter | function | 行の表示方法を定義します。この関数には1つのパラメータがあります:row。 コード例:
$('#cc').combobox({
formatter: function(row){
var opts = $(this).combobox('options');
return row[opts.textField];
}
});
|
|
| loader | function(param,success,error) | リモートサーバーからデータを読み込む方法を定義します。false を返すとそのアクションがキャンセルされます。この関数には次のパラメータがあります: param:リモートサーバーに送信するパラメータオブジェクト。 success(data):データの取得に成功したときに呼び出されるコールバック関数。 error():データの取得に失敗したときに呼び出されるコールバック関数。 |
json loader |
| loadFilter | function(data) | 表示するフィルタリング済みデータを返します。このプロパティはバージョン 1.3.3 以降で使用できます。 |
イベント
このイベントはコンボ(combo)から拡張されています。以下はコンボボックス(combobox)に追加されたイベントです。
| 名前 | パラメータ | 説明 |
|---|---|---|
| onBeforeLoad | param | データの読み込みを要求する前にトリガーされます。false を返すと読み込みアクションがキャンセルされます。 コード例:
// change the http request parameters before load data from server
$('#cc').combobox({
onBeforeLoad: function(param){
param.id = 2;
param.language = 'js';
}
});
|
| onLoadSuccess | none | リモートデータの読み込みが成功したときにトリガーされます。 |
| onLoadError | none | リモートデータの読み込みが失敗したときにトリガーされます。 |
| onSelect | record | ユーザーがリスト項目を選択したときにトリガーされます。 |
| onUnselect | record | ユーザーがリスト項目の選択をキャンセルしたときにトリガーされます。 |
メソッド
このメソッドはコンボ(combo)から拡張されています。以下はコンボボックス(combobox)に追加または上書きされたメソッドです。
| 名前 | パラメータ | 説明 |
|---|---|---|
| options | none | オプション(options)オブジェクトを返します。 |
| getData | none | 読み込まれたデータを返します。 |
| loadData | data | ローカルのリストデータを読み込みます。 |
| reload | url | リモートのリストデータを要求します。'url' パラメータを渡すと元の URL 値を上書きします。 コード例:
$('#cc').combobox('reload'); // reload list data using old URL
$('#cc').combobox('reload','get_data.php'); // reload list data using new URL
|
| setValues | values | コンボボックス(combobox)の値の配列を設定します。 コード例:
$('#cc').combobox('setValues', ['001','002']);
|
| setValue | value | コンボボックス(combobox)の値を設定します。 コード例:
$('#cc').combobox('setValue', '001');
|
| clear | none | コンボボックス(combobox)の値をクリアします。 |
| select | value | 指定されたオプションを選択します。 |
| unselect | value | 指定されたオプションの選択をキャンセルします。 |
jQuery EasyUI プラグイン その他の拡張