1. 程式人生 > >JQuery EasyUI combobox(下拉列表框)

JQuery EasyUI combobox(下拉列表框)



下拉列表框

繼承 $.fn.combo.defaults. 重寫 $.fn.combobox.defaults.

組合框顯示一個可編輯的文字框和下拉列表,使用者選擇一個或多個值。使用者可以直接輸入文字到頂部的列表,或選擇一個或多個當前值列表。

依賴

應用例項

從<select>建立下拉列表框元素與一個預定義的結構。

[html] 預覽複製print?
  1. <selectid="cc"class="<a title="EasyUI" href="http://wuzhuti.cn/tag/easyui/">EasyUI</a>-combobox" name
    ="dept"style="width:200px;">
  2. <optionvalue="aa">aitem1</option>
  3. <option>bitem2</option>
  4. <option>bitem3</option>
  5. <option>ditem4</option>
  6. <option>eitem5</option>
  7. </select>
<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>標記。

[html] 預覽複製print?
  1. <inputid="cc"class="easyui-combobox"name="dept"data-options="valueField:'id',textField:'text',url:'get_data.php'"/>
<input id="cc" class="easyui-combobox" name="dept" data-options="valueField:'id',textField:'text',url:'get_data.php'" />

使用javascript建立下拉列表框。

[html] 預覽複製print?
  1. <inputid="cc"name="dept"value="aa">
  2. $('#cc').combobox({  
  3. url:'combobox_data.json',  
  4. valueField:'id',  
  5. textField:'text'  
  6. });  
<input id="cc" name="dept" value="aa">

$('#cc').combobox({
url:'combobox_data.json',

valueField:'id',

textField:'text'
});

建立兩個依賴的組合框。

[html] 預覽複製print?
  1. <inputid="cc1"class="easyui-combobox"data-options=" valueField: 'id', textField: 'text', url: 'get_data1.php',  
  2. onSelect: function(rec){  
  3. var url = 'get_data2.php?id='+rec.id;  
  4. $('#cc2').combobox('reload', url);  
  5. }" />
  6. <inputid="cc2"class="easyui-combobox"data-options="valueField:'id',textField:'text'"/>
<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擴充套件,下面是新增屬性組合框。

名稱 型別 說明 預設
valueField string 底層資料值名稱繫結到這個組合框,傳到後臺實際值。 value
textField string 底層資料欄位名稱繫結到這個組合框,前臺顯示值。 text
mode string 定義瞭如何載入列表資料當文字改變。設定為“remote“如果下拉列表框從伺服器載入。當設定為“remot“模式下,使用者型別將被髮送的http請求引數命名為“q”伺服器來檢索新資料。 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 定義瞭如何過濾本地資料當“model”設定為“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。這個函式接受一個引數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

事件

事件從Combo擴充套件,下面是新增事件為下拉列表框。

名稱 引數 說明
onBeforeLoad param 在載入資料前觸發事件,如果返回false則不會載入資料程式碼示例:

// 改變引數的http請求從伺服器載入資料之前 $('#cc').combobox({ onBeforeLoad: function(param){ param.id = 2; param.language = 'js'; } });

onLoadSuccess none 當遠端資料載入成功。
onLoadError none 當遠端資料載入錯誤。
onSelect record 當用戶選擇一個列表項。
onUnselect record 當用戶取消選擇列表項。

方法

Combo的方法擴充套件,下面是新增或重寫的方法為下拉列表框。

名稱 引數 說明
options none 返回選擇物件。
getData none 返回資料的載入。
loadData data 載入區域列表資料。
reload url 請求遠端列表資料。通過“url”引數覆蓋原始url值。程式碼示例:

$('#cc').combobox('reload'); // 重新載入列表資料使用舊的URL $('#cc').combobox('reload','get_data.php'); // 重新載入列表資料使用新的URL

setValues values 設定組合框值陣列。程式碼示例:

$('#cc').combobox('setValues', ['001','002']);

setValue value 設定下拉列表框的值。程式碼示例:

$('#cc').combobox('setValue', '001');

clear none 清除下拉列表框值。
select value 選擇指定的項。
unselect value 取消選擇指定的項。