Plugin de formulario jQuery EasyUI -Combobox (cuadro combinado)
Plugin jQuery EasyUI
Extendido desde $.fn.combo.defaults. Los defaults predeterminados se pueden sobrescribir mediante $.fn.combobox.defaults.
El cuadro combinado (combobox) muestra un cuadro de texto editable y una lista desplegable, de la cual el usuario puede seleccionar uno o más valores. El usuario puede ingresar texto directamente en la parte superior de la lista, o seleccionar uno o más valores existentes de la lista.
Dependencias
- combo
Uso
Crear un combobox (cuadro combinado) a partir de un elemento <select> con una estructura predefinida.
<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>
Crear un combobox (cuadro combinado) a partir de una etiqueta <input>.
<input id="cc" class="easyui-combobox" name="dept"
data-options="valueField:'id',textField:'text',url:'get_data.php'">
Crear un combobox (cuadro combinado) usando JavaScript.
<input id="cc" name="dept" value="aa">
$('#cc').combobox({
url:'combobox_data.json',
valueField:'id',
textField:'text'
});
Crear dos combobox (cuadros combinados) dependientes.
<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'">
Ejemplo del formato de datos JSON:
[{
"id":1,
"text":"text1"
},{
"id":2,
"text":"text2"
},{
"id":3,
"text":"text3",
"selected":true
},{
"id":4,
"text":"text4"
},{
"id":5,
"text":"text5"
}]
Propiedades
Estas propiedades se extienden desde combo, a continuación se muestran las propiedades agregadas para combobox.
| Nombre | Tipo | Descripción | Valor predeterminado |
|---|---|---|---|
| valueField | string | El nombre de los datos subyacentes vinculados al valor (value) del ComboBox. | value |
| textField | string | El nombre de los datos subyacentes vinculados al texto (text) del ComboBox. | text |
| groupField | string | Indica el campo por el que se agrupará. Esta propiedad está disponible desde la versión 1.3.4. | null |
| groupFormatter | function(group) | Devuelve el texto de grupo que se muestra en los elementos agrupados. Esta propiedad está disponible desde la versión 1.3.4. Ejemplo de código:
$('#cc').combobox({
groupFormatter: function(group){
return '<span style="color:red">' + group + '</span>';
}
});
|
|
| mode | string | Define cómo cargar los datos de la lista cuando el texto cambia. Si el combobox carga desde el servidor, se establece como 'remote'. Cuando se establece el modo 'remote', el valor ingresado por el usuario se enviará al servidor como un parámetro de solicitud HTTP llamado 'q' para obtener nuevos datos. | local |
| url | string | La URL para cargar los datos de la lista desde remoto. | null |
| method | string | El método HTTP utilizado para recuperar los datos. | post |
| data | array | Los datos de la lista que se cargan. Ejemplo de código:
<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 | Define cómo filtrar los datos locales cuando 'mode' está establecido en 'local'. Esta función tiene dos parámetros: q: el texto ingresado por el usuario. row: los datos de la fila en la lista. Devuelve true para permitir que la fila se muestre. Ejemplo de código:
$('#cc').combobox({
filter: function(q, row){
var opts = $(this).combobox('options');
return row[opts.textField].indexOf(q) == 0;
}
});
|
|
| formatter | function | Define cómo se representa la fila. Esta función tiene un parámetro: row. Ejemplo de código:
$('#cc').combobox({
formatter: function(row){
var opts = $(this).combobox('options');
return row[opts.textField];
}
});
|
|
| loader | function(param,success,error) | Define cómo cargar datos desde un servidor remoto. Devuelve false para cancelar la acción. Esta función tiene los siguientes parámetros: param: el objeto de parámetros que se enviará al servidor remoto. success(data): la función de devolución de llamada que se invocará cuando los datos se obtengan correctamente. error(): la función de devolución de llamada que se invocará cuando falle la obtención de datos. |
json loader |
| loadFilter | function(data) | Devuelve los datos filtrados que se mostrarán. Esta propiedad está disponible desde la versión 1.3.3. |
Eventos
Estos eventos se extienden desde combo, a continuación se muestran los eventos agregados para combobox.
| Nombre | Parámetros | Descripción |
|---|---|---|
| onBeforeLoad | param | Se dispara antes de solicitar la carga de datos. Devuelve false para cancelar la acción de carga. Ejemplo de código:
// change the http request parameters before load data from server
$('#cc').combobox({
onBeforeLoad: function(param){
param.id = 2;
param.language = 'js';
}
});
|
| onLoadSuccess | none | Se dispara cuando los datos remotos se cargan correctamente. |
| onLoadError | none | Se dispara cuando falla la carga de datos remotos. |
| onSelect | record | Se dispara cuando el usuario selecciona un elemento de la lista. |
| onUnselect | record | Se dispara cuando el usuario deselecciona un elemento de la lista. |
Métodos
Estos métodos se extienden desde combo, a continuación se muestran los métodos agregados o sobrescritos para combobox.
| Nombre | Parámetros | Descripción |
|---|---|---|
| options | none | Devuelve el objeto de opciones (options). |
| getData | none | Devuelve los datos cargados. |
| loadData | data | Carga datos de lista locales. |
| reload | url | Solicita datos de lista remotos. Pase el parámetro 'url' para sobrescribir el valor de URL original. Ejemplo de código:
$('#cc').combobox('reload'); // reload list data using old URL
$('#cc').combobox('reload','get_data.php'); // reload list data using new URL
|
| setValues | values | Establece el array de valores del combobox. Ejemplo de código:
$('#cc').combobox('setValues', ['001','002']);
|
| setValue | value | Establece el valor del combobox. Ejemplo de código:
$('#cc').combobox('setValue', '001');
|
| clear | none | Limpia el valor del combobox. |
| select | value | Selecciona la opción especificada. |
| unselect | value | Deselecciona la opción especificada. |
Plugin jQuery EasyUI Otras extensiones