jQuery easyui combobox级联及内容联想
1、需求:已有一个下拉框A表示地区,现新增需求,需要在A选择不同地区时,增加一个展示该地区所有城市的下拉框B,
由于城市较多,要求B能实现用户输入和模糊匹配展示功能。
2.实现:
(1)首先在A下面把B列出来,然后给A加一个onchange事件,当内容改变时调用createCities函数。
<tr id="districtLine" style="display: none;">
<th>请选择地区:</th>
<td>
<select id="districtId" name="districtId"
style="width: 171px;" onchange="createCities();">
<c:forEach var="dist" items="${districts}" varStatus="abc">
<c:choose>
<c:when test='${abc.index eq 0}'>
<option value="${dist.districtId }" selected="selected">${dist.districtName }</option>
</c:when>
<c:otherwise>
<option value="${dist.districtId }">${dist.districtName }</option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
</td>
</tr>
<tr id="districtLine2" style="display: none;">
<th>请选择城市:</th>
<td>
<input name="districtId2" id="districtId2"/>
</td>
</tr>
(2)createCities,在ajax从后台取地区所有城市成功以后,用easyui的combobox创建下拉框,关键是combobox的filter属性。function的第一个参数q是用户输入的内容,第二个参数row是combobox内的每一项
数据,如果程序员使用了combobox的filter方法,当用户在combobox中输入内容时,针对每一条combobox中的数据都会调用function,如果返回true则表示过滤成功,过滤成功的意思就是展示出来。
function createCities(){
var daqu = $('#districtId').val();
$.ajax({
url:'${pageContext.request.contextPath}/goods/getCitiesByDaqu',
type:'post',
dataType:'json',
data:{daquId:daqu},
success:function(cities){
$('#districtId2').combobox({
valueField:'districtId',
textField:'districtName',
data:cities,
filter:function(q,row){
return row.districtName.indexOf(q)>=0;
}
});
}
});
}
(3)在页面加载完毕以后就调用createCities
$(function() {
createCities();
});
3、结果展示
(1)级联结果展示
(2)内容模糊匹配展示
4、后记
我们使用easyui的combobox构造的下拉框,当用户正常使用它也就是当用户选中了某一项时,表单提交到后台的数据也是正常的select option中的value,
但当用户在combobox中手动输入内容,并未点选任何combobox列出的内容时,表单提交到后台的数据却是用户输入的内容。
比如:如果沧州的districtId是100,当用户输入州,并点选了联想结果中的沧州以后,提交表单以后后台接收到的district2内容是100,
如果用户没有点选联想结果,而是在城市下拉框外的地方点击了一下使下拉框失去焦点,这时提交表单以后后台接收到的district2内容是"州"。
原因是第一种情况easyui将district2翻译成<select>下拉框组件,而第二种情况easyui将district2翻译成input type="text"组件。
这个问题必须在后台加以区分,否则会出错。
jQuery easyui combobox级联及内容联想的更多相关文章
- jquery easyui combobox 级联及触发事件,combobox级联
jquery easyui combobox 级联及触发事件,combobox级联 >>>>>>>>>>>>>>&g ...
- JQuery EasyUI Combobox的onChange事件
html中的select 的change事件 <select id="consult_province" name="consult_province" ...
- jQuery EasyUI Combobox无法检索中文输入的问题
在项目里使用了EasyUI的Combobox,当ComboBox的item是英文时,都能正常检索出对应项,但是如果使用中文输入法输入几个字母然后通过按shift键输入时,奇怪的事情发生了,combob ...
- jquery easyui tab加载内容的几种方法
转:http://my.oschina.net/u/2331760/blog/391937?fromerr=saqeoxxB jQuery Easyui 的tabs插件有两种方式加载某个tab(标签页 ...
- jquery easyui combobox学习
今天尝试了一下jquery easy ui的combobox,感觉蛮好用的,直接上代码吧 HTML如下 <div> <input id="btnBind" typ ...
- jQuery EasyUI:根据数据库内容生成适合于easyui-tree的JSON数据格式
1,jQuery EasyUI中easyui-tree特定的JSON数据格式 [ {"id":1,"text":"某公司","ch ...
- jQuery easyui combobox获取值|easyui-combobox获取多个值
Query easyui combobox事例: name="language" data-options=" ...
- easyui combobox级联(转载)
一.创建combobox 有如下几种方式可以创建一个combobox 1.使用select标签,并加上class="easyui-combobox",这种方式比较适用于静态的选项. ...
- JQuery EasyUI Combobox 实现省市二级联动菜单
//编辑改动或新增页面联动能够这样写 jQuery(function(){ // 省级 $('#province').combobox({ valueField:'itemvalue', //值字段 ...
随机推荐
- [ACM_其他] Modular Inverse [a关于模m的逆 模线性方程]
Description The modular modular multiplicative inverse of an integer a modulo m is an integer x such ...
- JPA oneToMany 级联更新
oneToMany 使用: 示例:Employee与Phone为例. 1.类定义如下: package com.vrvwh.wh01.domain; import javax.persistence. ...
- 使用SharePoint CSOM 编写高效的程序
上一篇文章中简单的介绍了使用CSOM进行编程.今天主要讲一下CSOM使用中一些小技巧,可以让你的程序运行的更快. 单独加载某些属性 在上文中的例子,需要返回Web对象信息的时候,我们使用了如下的代码: ...
- docker解决数据存储问题的方案
现在docker在云计算领域发展的势头很猛,各个公司不论大小都开始研究这个开源工具和技术,围绕docker的开源项目和创业公司也多如牛毛,就是一个简单管理container的web ui都有很多开源项 ...
- JavaScript:最烂与最火
============================================================================== 一.世无英雄,遂使竖子成名 1 Web客户 ...
- Redis安装与日常使用
下载与安装 $ wget http://download.redis.io/releases/redis-3.0.3.tar.gz $ tar xzf redis-3.0.3.tar.gz $ cd ...
- 判断输入的数是否为数字,不使用isNaN
虽然不使用 isNaN ,但使用了 Math 的一些方法. <!-- Author: XiaoWen Create a file: 2016-12-08 11:14:34 Last modifi ...
- 菜鸟日记-HTML-表格与表单
一.表格 <table></table> width:宽度.可以用像素或百分比表示. border:边框,常用值0 cellpadding:内容跟单元格边框的边距.常用值0 a ...
- MyEclipse使用总结——设置MyEclipse使用的Tomcat服务器 设置JDK
一.设置使用的Tomcat服务器 如果不想使用MyEclipse自带的tomcat服务器版本,那么可以在MyEclipse中设置我们自己安装好的tomcat服务器 设置步骤如下: Window→Pre ...
- Command模式
Command模式只是封装了一个没有任何变量的函数. interface Command{ void Excute();} 具有强烈的分解功能的味道.把函数层面的任务提升到了类的层面(一个类仅仅是为了 ...