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 相关文章推荐
jQuery Ajax文件上传(php)
Jun 16 Javascript
用jquery设置按钮的disabled属性的实现代码
Nov 28 Javascript
实现51Map地图接口(示例代码)
Nov 22 Javascript
js实现网页自动刷新可制作节日倒计时效果
May 27 Javascript
如何减少浏览器的reflow和repaint
Feb 26 Javascript
jquery实现倒计时功能
Dec 28 Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
May 12 Javascript
js 获取图像缩放后的实际宽高,位置等信息
Mar 07 Javascript
ReactNative中使用Redux架构总结
Dec 15 Javascript
基于jQuery实现的设置文本区域的光标位置
Jun 15 jQuery
微信小程序实现聊天对话(文本、图片)功能
Jul 06 Javascript
JavaScript实现秒杀时钟倒计时
Sep 29 Javascript
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实现两个数组相加的方法
2015/02/17 PHP
php简单判断两个字符串是否相等的方法
2015/07/13 PHP
PHP中empty,isset,is_null用法和区别
2017/02/19 PHP
PHP编程求最大公约数与最小公倍数的方法示例
2017/05/29 PHP
jQuery使用手册之一
2007/03/24 Javascript
浅析JQuery获取和设置Select选项的常用方法总结
2013/07/04 Javascript
js中哈希表的几种用法总结
2014/01/28 Javascript
JS中操作JSON总结
2020/12/06 Javascript
javascript写的一个模拟阅读小说的程序
2014/04/04 Javascript
JavaScript中的alert()函数使用技巧详解
2014/12/29 Javascript
JS实现窗口加载时模拟鼠标移动的方法
2015/06/03 Javascript
js点击文本框后才加载验证码实例代码
2015/10/20 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
2016/07/05 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
bootstrap table小案例
2016/10/21 Javascript
JavaScript中undefined和null的区别
2017/05/03 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
微信小程序tabBar用法实例详解
2017/12/04 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
2020/08/10 Javascript
Python中关于字符串对象的一些基础知识
2015/04/08 Python
Python中max函数用法实例分析
2015/07/17 Python
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
Python操作多维数组输出和矩阵运算示例
2019/11/28 Python
关于Keras模型可视化教程及关键问题的解决
2020/01/24 Python
浅谈Html5页面打开app的一些思考
2020/03/30 HTML / CSS
美国女性运动零售品牌:Lady Foot Locker
2017/05/12 全球购物
Tech21美国/加拿大:英国NO.1防摔保护壳品牌
2018/01/20 全球购物
趣味游戏活动方案
2014/02/07 职场文书
2014年秋季新学期寄语
2014/08/02 职场文书
领导班子遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
2015年数学教研工作总结
2015/07/22 职场文书
2015年环境监察工作总结
2015/07/23 职场文书
MySQL数据库压缩版本安装与配置详细教程
2021/05/21 MySQL