jQuery EasyUI 表單插件 - Combobox 組合框

擴展自 $.fn.combo.defaults。通過 $.fn.combobox.defaults 重寫默認的 defaults。
組合框(combobox)顯示一個可編輯的文本框和下拉列表,用戶可以從下拉列表中選擇一個或多個值。用戶可以直接輸入文本到列表的頂部,或者從列表中選擇一個或多個現成的值。

依賴
- 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' });
創建兩個依賴的組合框(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' 時如何過濾本地數據。該函數有兩個參數: q:用戶輸入的文本。 row:列表中的行數據。 返回 true 則允許顯示該行。 代碼實例: $('#cc').combobox({ filter: function(q, row){ var opts = $(this).combobox('options'); return row[opts.textField].indexOf(q) == 0; } }); |
|
formatter | function | 定義如何呈現行。該函數有一個參數: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 | 取消選擇指定的選項。 |
