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', //值字段 ...
随机推荐
- SQLServer DBA 三十问(加强版)
距离最初发布SQLServer DBA 三十问 已有一年多了,大家对其中的某些问题讨论比较激烈,要回答出来这些问题需要比较扎实的SQLServer 基础和一定的实际操作经验,如果你试着去回答其中的问题 ...
- 彻底掌握this,call,apply
说起js里面比较头疼的知识点,this的指向,call与apply的理解这三者肯定算的上前几,好的js开发者这是必须迈过的槛.今天就总结下这三者紧密相连的关系. 首先推荐理解call的用法 Funct ...
- [Python爬虫] Selenium+Phantomjs动态获取CSDN下载资源信息和评论
前面几篇文章介绍了Selenium.PhantomJS的基础知识及安装过程,这篇文章是一篇应用.通过Selenium调用Phantomjs获取CSDN下载资源的信息,最重要的是动态获取资源的评论,它是 ...
- Android Studio 生成Release版,报Warning的解决办法
转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6242227.html 请尊重知识产权!!! 同步更新到CSDN:http://blog.csdn.net/ ...
- 修改Oracle并行度的方法
Oracle并行度默认为1,适当修改并行度对提高性能有很大帮助 1.查看并行度 select table_name,degree from user_tables; --并行度按照用户表分别设置 2. ...
- javascript设计模式与开发实践阅读笔记(6)——代理模式
代理模式:是为一个对象提供一个代用品或占位符,以便控制对它的访问. 代理模式的关键是,当客户不方便直接访问一个对象或者不满足需要的时候,提供一个替身对象来控制对这个对象的访问,客户实际上访问的是替身对 ...
- linux下安装tomcat,部署项目
一.先检查是否安装jdk java -version 查看版本信息,如果显示 那基本就是安装了. root@iZ2ze2hksqphzp0eh7dskoZ:/opt# java -version -b ...
- 几种web数据渲染模板对比
在web开发,实现视图.数据的分离,由前端工程师专门负责编写html页面,有php后台工程师写php接口返回json数字,那么中间如何将json数据绑定到html页面上有几种方法呢.基于这种需求大体上 ...
- 充分利用 UE4 中的噪声
转自:https://www.unrealengine.com/zh-CN/blog/getting-the-most-out-of-noise-in-ue4 UE4 推出基于材质的程序式噪声已经有一 ...
- 小白学数据分析----->ARPPU的误区
新年到来,该应该持续坚持写下去,还是有很多人要来学习和进步的. 今天提到了一个概念:ARPPU. 这个概念等同于之前大家认识的ARPU(其实这句话我是很不愿意说的),ARPPU是总收入除以总付费用户数 ...