jQuery中Chosen三级联动功能实例代码


Posted in Javascript onMarch 07, 2017

Chosen 是一个JavaScript插件,它能让丑陋的、很长的select选择框变的更好看、更方便,不仅如此,它更扩大了,增长了主动筛选的功能。

本文介绍Chosen联动,具体代码如下:

var addressResolve = function (options) {
  //检测用户传进来的参数是否合法
  if (!isValid(options))
    return this;
  //默认参数
  var defaluts = {
    proId: 'divProv',
    cityId: 'divCity',
    areaId: 'divArea'
  };
  var opts = $j.extend({}, defaluts, options);//使用jQuery.extend 覆盖插件默认参数
  var addressInfo = this;
  this.provInfo = $j("#" + opts.proId);//省份select对象
  this.cityInfo = $j("#" + opts.cityId);//城市select对象
  this.areaInfo = $j("#" + opts.areaId);//区县select对象
  /*省份初始化方法*/
  this.provInfoInit = function () {
    var proOpts = "";
    $j.each(provinceJson, function (index, item) {
      proOpts += "<option value='" + item.ProID + "'>" + item.name + "</option>";
    });
    addressInfo.provInfo.append(proOpts);
    addressInfo.provInfo.chosen(); //初始化chosen
    addressInfo.cityInfo.chosen();//初始化chosen
    addressInfo.areaInfo.chosen();//初始化chosen
  };
  /*城市选择绑定方法*/
  this.selectCity = function () {
    addressInfo.cityInfo.empty();
    addressInfo.cityInfo.append("<option value=选择城市>选择城市</option>");
    addressInfo.areaInfo.empty();
    addressInfo.areaInfo.append("<option value=选择区县>选择区县</option>");
    if (addressInfo.provInfo.val() == "选择省份") { //选择无效时直接返回
      addressInfo.cityInfo.trigger("liszt:updated");
      addressInfo.areaInfo.trigger("liszt:updated");
      return;
    }
    var provId = addressInfo.provInfo.val();//获取选择的省份值
    var cityOpts = "";
    $j.each(cityJson, function (index, item) {
      if (item.ProID == provId) {
        cityOpts += "<option value='" + item.CityID + "'>" + item.name + "</option>";
      }
    });
    addressInfo.cityInfo.append(cityOpts);
    addressInfo.cityInfo.trigger("liszt:updated");
    addressInfo.areaInfo.trigger("liszt:updated");
  };
  /*区县选择绑定方法*/
  this.selectArea = function () {
    if (addressInfo.cityInfo.val() == "选择城市") return;
    addressInfo.areaInfo.empty();
    addressInfo.areaInfo.append("<option value=选择区县>选择区县</option>");
    var cityId = addressInfo.cityInfo.val();//获取选择的城市值
    var areaOpts = "";
    $j.each(areaJson, function (index, item) {
      if (item.CityID == cityId) {
        areaOpts += "<option value='" + item.Id + "'>" + item.DisName + "</option>";
      }
    });
    addressInfo.areaInfo.append(areaOpts);
    addressInfo.areaInfo.trigger("liszt:updated");
  };
  /*对象初始化方法*/
  this.init = function () {
    addressInfo.provInfo.append("<option value=选择省份>选择省份</option>");
    addressInfo.cityInfo.append("<option value=选择城市>选择城市</option>");
    addressInfo.areaInfo.append("<option value=选择区县>选择区县</option>");
    addressInfo.provInfoInit();
    addressInfo.provInfo.bind("change", addressInfo.selectCity);
    addressInfo.cityInfo.bind("change", addressInfo.selectArea);
  }
  //私有方法,检测参数是否合法
  function isValid(options) {
    return !options || (options && typeof options === "object") ? true : false;
  }
}

以上所述是小编给大家介绍的jQuery中Chosen三级联动实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
兼容FF和IE的动态table示例自写
Oct 21 Javascript
JQuery中操作Css样式的方法
Feb 12 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
Apr 21 Javascript
js验证上传图片的方法
May 12 Javascript
Bootstrap每天必学之标签与徽章
Nov 27 Javascript
Bootstrap基本布局实现方法详解
Nov 25 Javascript
jquery中each循环的简单回滚操作
May 05 jQuery
关于angularJs清除浏览器缓存的方法
Nov 28 Javascript
Vue.js递归组件构建树形菜单
Dec 24 Javascript
详解在vue-cli项目下简单使用mockjs模拟数据
Oct 19 Javascript
基于vue开发微信小程序mpvue-docs跳转页面功能
Apr 10 Javascript
vue3自定义dialog、modal组件的方法
Jan 04 Vue.js
jQuery基于事件控制实现点击显示内容下拉效果
Mar 07 #Javascript
js 获取图像缩放后的实际宽高,位置等信息
Mar 07 #Javascript
JavaScript和JQuery获取DIV值的方法示例
Mar 07 #Javascript
AngularJS监听路由变化的方法
Mar 07 #Javascript
微信小程序开发之入门实例教程篇
Mar 07 #Javascript
JavaScript实现替换字符串中最后一个字符的方法
Mar 07 #Javascript
Node.js查找当前目录下文件夹实例代码
Mar 07 #Javascript
You might like
PHP判断远程url是否有效的几种方法小结
2011/10/08 PHP
PHP+javascript制作带提示的验证码源码分享
2014/05/28 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
javascript设计模式之工厂模式示例讲解
2014/03/04 Javascript
JS控制弹出新页面窗口位置和大小的方法
2015/03/02 Javascript
jQuery事件绑定用法详解
2016/09/08 Javascript
第一次接触神奇的前端框架vue.js
2016/12/01 Javascript
如何提高数据访问速度
2016/12/26 Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
2017/07/12 Javascript
详解webpack多页面配置记录
2018/01/22 Javascript
浅谈VUE监听窗口变化事件的问题
2018/02/24 Javascript
jQuery实现的老虎机跑动效果示例
2018/12/29 jQuery
原生js实现随机点名功能
2019/11/05 Javascript
原生js实现贪食蛇小游戏的思路详解
2019/11/26 Javascript
[01:03]悬念揭晓 11月26日DOTA2完美盛典不见不散
2017/11/23 DOTA
Python3.x和Python2.x的区别介绍
2013/02/12 Python
详解在Python程序中使用Cookie的教程
2015/04/30 Python
利用Django-environ如何区分不同环境
2018/08/26 Python
python自动化生成IOS的图标
2018/11/13 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
python统计函数库scipy.stats的用法解析
2020/02/25 Python
python数字类型math库原理解析
2020/03/02 Python
Pytorch 高效使用GPU的操作
2020/06/27 Python
python之语音识别speech模块
2020/09/09 Python
python的链表基础知识点
2020/09/13 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
2021/01/27 Python
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
研究生自我鉴定范文
2013/10/30 职场文书
市场部管理制度
2014/02/02 职场文书
市级青年文明号申报材料
2014/05/26 职场文书
2014年档案管理工作总结
2014/11/17 职场文书
工程技术员岗位职责
2015/04/11 职场文书
php将xml转化对象的实例详解
2021/11/17 PHP
Redis命令处理过程源码解析
2022/02/12 Redis