一,combobox的属性,事件和方法

combobox可以配置属性,绑定事件监听,调用方法,理解这几个概念之后会对combobox有更清晰的了解。

1,配置属性

combobox可以配置自己的属性,他的属性可以定义在<input>或<select>标签的data-options参数中,比如:

<select id="type" name="type" class="easyui-combobox" data-options="url:'getType.do',valueField:'id',textField:'text' ">

也可以在JavaScript代码中指定:

$('#type').combobox({url:'getType.do',valueField:'id',textField:'text'});

其中url,valueField,textField,都是combobox的属性,属性值应该用引号包裹。

2,绑定事件

combobox可以绑定事件监听,事件可以绑定在<input>或<select>标签的data-options参数中,比如用下面的代码绑定onSelect事件:

<select id="type" name="type" class="easyui-combobox" data-options="onSelect:changeType">

这个事件绑定表示选项更换之后会调用JavaScript中定义的changeType()函数

也可以在JavaScript代码中指定,比如用下面的代码绑定onSelect事件:

$('#type').combobox({onSelect: function (n,o) {}});

3,调用方法

combobox可以调用一些方法,可调用的方法参见EasyUI的文档。

比如调用setValue方法:

$("#type").combobox('setValue','somevalue')

其中'setValue'是方法名,'somvalue'是参数。

有的方法没有参数,比如getValue方法:

var number=$("#number").combobox('getValue');

二,combobox的普通操作

如果有如下的combobox定义:

<input type="text" id="number" name="number" >
$("#number").combobox({onChange: function (n,o) {changeNumber();}});

1,获取选中项的value

var number=$("#number").combobox('getValue');

获取的是下拉框选中项的value值,不是显示的文字。

2,获取选中项的文字

var number=$("#number").combobox('getText');

3,指定选中某项

$("#number").combobox('setValue','somevalue')

$("#number").combobox('select','somevalue')

combobox('setValue')和combobox('select')的相同点:

1,都会触发onchange事件。

2,如果下拉框的value中存在'somevalue'这个值时,combobox下拉框会自动选中这个选项,否则会在文本框中显示该值,不选中任何选项。

combobox('setValue')和combobox('select')的不同:

combobox('setValue'),不会触发onselect事件。即使目标value存在且被下拉框选中也不会触发。

combobox('select'),会触发onselect事件,即使目标value不存在也会触发,此时onselect事件中的参数n为null。

4,清空选中项

$("#number").combobox('clear');

该方法只能清空选中项,不会影响下拉框选项列表。

5,清空下拉选项列表

$("#number").combobox('loadData', {});

该方法会清空下拉框的所有选项。loadData方法本身是用来加载静态下拉框选项的。

6,重新加载下拉选项

$("#number").combobox('reload');

还可以添加url参数,按照新的url参数来加载下拉选项:

$("#number").combobox('reload',url);

7,得到下拉框的下拉选项类

var opts = $("#type").combobox("options");

和combobox("getData")不同,combobox("options")得到的并不是下拉选项的列表,而是一个对象结构。

比如有这样的combobox:

<input id="type" class="easyui-combobox" name="type" data-options="valueField:'id',textField:'text',url:'getType.do' ">

那么:

var valueField = $("#type").combobox("options").valueField;

得到的是字符串"id"。不含引号。

var url = $("#type").combobox("options").url;

得到的则是字符串'getType.do'。不含引号。

8,得到下拉框的全部数据

var allData = $("#type").combobox("getData");

该方法得到的是一个数组,可以用allData.length得到数组长度。也可以通过for循环来遍历。

数组的每个元素都代表一个下拉选项。

比如有这样的combobox:

<input id="type" class="easyui-combobox" name="type" data-options="valueField:'id',textField:'text',url:'getType.do' ">

那么:

$("#type").combobox("getData")[0]['id'];

代表获取第一个下拉选项的value值。

注意:必须使用['id']的形式,笼统的使用[valueField]是错误的。

所以可以结合combobox("options")来达到统一的效果:

var field = $("#type").combobox("options").valueField;var allData = $("#type").combobox("getData");var value=allData[0][field];

以上代码中的value就是第一个下拉选项的value值。

9,onChange事件

onchange是combobox中的值发生变化时触发的事件。

这个发生变化包括在文本框中输入文字,还有点击下拉框中的其他选项。

当在文本框输入文字时,如果两次键入文字的时间间隔较小,该事件不会触发,稍一停顿则会触发,这个时间目测大概零点几秒。

onchange可以这样定义:

$("#type").combobox({onChange: function (n,o) {}});

n代表新选择的下拉选项的value,或者在文本框中刚刚输入的文字。这取决于之前的值是选择下拉框选项而来还是在文本框中键入了文字。

o代表修改前的下拉选项的value,或者修改前在文本框中输入的文字。这取决于之前的值是选择下拉框选项而来还是在文本框中键入了文字。

10,onSelect事件

onselect是在combobox下拉框中更换下拉选项时触发的事件。

和onchange事件不同,在文本框中手动输入内容时不会触发onselect。

onselect可以这样定义:

$("#type").combobox({onSelect: function (n,o) {}});

n代表新选择的下拉选项。

o代表选择前的下拉选项。

注意,和onChange不同,onSelect的n和o代表的是选择之前和选择之后的下拉选项,可以通过:

n.valuen.text

来获得选中项的value和文本内容

三,combobox的创建方式

EasyUI的combobox有以下几种创建方式:

1,<select>元素+预定义<option>

只需要在<select>元素中添加class="easyui-combobox"即可。

比如:

<select id="type" class="easyui-combobox" name="type" style="width: 100px"><option value=""></option><option value="1">类型1</option><option value="2">类型2</option><option value="3">类型3</option></select>

2,<select>元素+动态加载下拉选项

在<select>标签中添加class="easyui-combobox"参数,另外在<select>标签中添加data-options参数,并在参数值中设定url属性。

比如:

<select id="type" class="easyui-combobox" name="type"data-options="url:'getType.do',valueField:'id',textField:'text' "><option value="">请选择</option></select>

注意,动态下拉选项加载完成后,之前预加载的所有下拉选项会消失。

3,<input>元素+预定义JSON

在<input>标签中添加class="easyui-combobox"参数,另外在<input>标签中添加data-options参数,并在参数值中设置data属性,data的值是JSON格式。

比如:

<input class="easyui-combobox" id="type" name="type"data-options="valueField: 'id',textField: 'text',data: [{id: '1',text: '类型1'},{id: '2',text: 'Perl'},{id: '3',text: 'Ruby'}]"/>

4,<input>元素+动态加载下拉选项

在<input>标签中添加class="easyui-combobox"参数,另外在<input>标签中添加data-options参数,并在参数值中设定url属性。

比如:

<input id="type" class="easyui-combobox" name="type" data-options="valueField:'id',textField:'text',url:'getType.do '">

valueField:'id',表示url返回值中的id参数将被设置为下拉选项的value。

textField:'text',表示url返回值中的text参数将被设置为下拉选项的文本内容。

url,url是请求地址,可以返回JSON列表格式,也可以返回其他key-value形式的列表。

如果是java+spring的组合,可以返回List<Map<String, Object>>格式,List中的每个Map代表一个下拉选项,Map.get("id")的值就是下拉选项的value的值,Map.get("text")的值就是下拉选项的文本。

建议使用org.springframework.web.bind.annotation.ResponseBody注解。

5,由jquery代码创建。

首先需要一个<input>元素或<select>元素:

<input id="type" name="type" value="type">

然后用如下代码创建combobox:

$('#type').combobox({url:'getType.do',valueField:'id',textField:'text'});

实际上只要执行:

$('#type').combobox({});

就可以把<input>元素或<select>元素变为combobox下拉框。这个过程貌似是不可逆的,除非把元素删除然后重新添加一个。

除了以上代码中定义的参数之外,还可以绑定EasyUI的其他参数或事件。

四,其他几个属性,事件,方法简介

1,groupField属性

指定要被分组的字段。

2,groupFormatter属性

返回要显示在分组项目上的分组文本。

用函数的方式定义,类似绑定事件时的写法。

3,onBeforeLoad事件

在发起加载请求前触发的事件,如果方法返回了false,则不会加载。

4,onLoadSuccess事件

远程数据加载成功后触发的事件。

5,onLoadError事件

远程数据加载失败后触发的事件。

6,setValues方法

给combobox批量赋值并选中。

$('#type').combobox('setValues', ['1','2']);

7,unselect方法

取消选择指定value。

以上

EasyUI的combobox使用总结相关推荐

  1. easyui的combobox下拉框初始化默认值以及保持该值一直显示的方法

    easyui的combobox下拉框默认初始值是空,下面是实现从远程加载数据之后初始化默认值,以及让该值一直排在下拉框的最顶部的方式. 目前的需求是需要在初始化的时候添加"全部数据库&quo ...

  2. easyUI的combobox选中无法显示

    easyUI的combobox选中无法显示 最近,在使用easyUI做前台的页面,遇到一个非常奇葩的问题,就是easyUI的combobox,有下拉的内容,但是,选中之后不会显示到其中文本框中. 首先 ...

  3. EasyUI的combobox用法

    EasyUI的combobox用法 在ITOO中有一个需求,前台使用的是easyUI的框架,这里有几个combobox下拉框,其中的内容都是可选的. 当下拉框中的内容非常多的时候,用户需要选择其中的所 ...

  4. 第二百二十三节,jQuery EasyUI,ComboBox(下拉列表框)组件

    jQuery EasyUI,ComboBox(下拉列表框)组件,可以远程加载数据的下拉列表组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 C ...

  5. easyui select ajax,easyui的combobox根据后台数据实现自动输入提示功能

    easyui的combobox根据后台数据实现自动输入提示功能 发布时间:2020-06-11 10:09:41 来源:51CTO 阅读:1981 作者:crackernet adauhuehkek最 ...

  6. easyUI中combobox中idFeild和textFeild的取值方法

    easyUI中combobox是比较常用的选择数据的方式,在官方的API说明中是这样描述的:扩展自 $.fn.combo.defaults.使用 $.fn.combobox.defaults重写默认值 ...

  7. java swing 自动补全_扩展easyui的combobox组件的自动完成(autocomplete)

    update:现有有easyui插件直接提供了该功能. 可以请参考:http://www.easyui-extlib.com/ 里面combobox的根据拼音自动显示.里面各种插件造福大家. ---- ...

  8. easyUI的combobox实现级联

    先简介下combobox: easyUI重写了select,取而代之的是combobox,有例如以下几种方式能够创建一个combobox 1.使用select标签,并加上class="eas ...

  9. easyUI之ComboBox(下拉列表框)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head ...

最新文章

  1. [Android]Android端ORM框架——RapidORM(v1.0)
  2. Mysql不需要身份验证便可远程连接故障
  3. python读取json文件转化为list_Python从所有子目录读取JSON文件
  4. diskgenius linux版_纯净版Windows10系统安装详细教程
  5. python importlib_metadata_Python 动态导入对象,importlib.import_module()的使用方法
  6. Android开发之百度地图距离判断(判断定位位置是否在圆的范围内)
  7. php防止快速刷新代码(分享)_php防止网站被刷新的方法汇总
  8. mysql 存储过程 set into_mysql存储过程之创建(CREATE PROCEDURE)和调用(CALL)及变量创建(DECLARE)和赋值(SET)操作方法...
  9. css现在还用浮动吗,css3-9 css中的浮动怎么使用
  10. 二叉树非递归后序遍历算法
  11. 计算所有1-100之间数字之和(偶数之和)代码
  12. python爬虫中文乱码_解决Python爬虫处理文件时候中文名称出现乱码问题
  13. C向Python传递数组和List参数
  14. 《机器学习》周志华,勘误修订(带公式显示)
  15. 微信“小程序”来了 Webpower教您如何做二维码营销
  16. Linux系统编程 —线程属性
  17. sql server 首字母大写
  18. abaqus中六面体单元对比四面体
  19. 股票API数据实时查询
  20. html平面图绘制,小白福利!超详细平面图绘制

热门文章

  1. SpringBoot+Axis2搭建WebService服务端
  2. WCF医院管理系统技术解析(五)体检登记(四)
  3. 献给毕业生:五百强各大行业简介+面试流程+tips (zhuan)
  4. ROS中自定义带有header的消息文件
  5. CSDN 博客栏目添加微博一键关注
  6. 程序员如何开启职业第二春?年薪50w+的金融IT岗了解一下
  7. 为什么方差公式要用平方而不用绝对值_科学网—最小二乘法?为神马不是差的绝对值 - 于淼的博文...
  8. 也谈GDP核算:支出法与收入法中的弯弯绕绕
  9. python - 简单实现预测最近运势
  10. (附源码)计算机毕业设计SSM二手交易平台