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 相关文章推荐
Ext 表单布局实例代码
Apr 30 Javascript
在iframe里的页面编写js,实现在父窗口上创建动画效果展开和收缩的div(不变动iframe父窗口代码)
Dec 20 Javascript
treepanel动态加载数据实现代码
Dec 15 Javascript
js 字符串转换成数字的三种方法
Mar 23 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
Aug 07 Javascript
超漂亮的jQuery图片轮播特效
Nov 24 Javascript
基于js实现二级下拉联动
Dec 17 Javascript
基于Node.js实现压缩和解压缩的方法
Feb 13 Javascript
vue2.0学习之axios的封装与vuex介绍
May 28 Javascript
原生js实现trigger方法示例代码
May 22 Javascript
微信小程序+云开发实现欢迎登录注册
May 24 Javascript
Node.js实现简单的爬取的示例代码
Jun 25 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中进行身份认证
2006/10/09 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
JavaScript 不只是脚本
2007/05/30 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
2013/10/18 Javascript
nodejs命令行参数处理模块commander使用实例
2014/09/17 NodeJs
探讨js字符串数组拼接的性能问题
2014/10/11 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
javascript解决IE6下hover问题的方法
2015/07/28 Javascript
Bootstrap表单制作代码
2017/03/17 Javascript
AngularJS路由切换实现方法分析
2017/03/17 Javascript
基于angular实现模拟微信小程序swiper组件
2017/06/11 Javascript
js 获取元素的具体样式信息getcss(实例讲解)
2017/07/05 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
深入解析koa之中间件流程控制
2019/06/17 Javascript
vue实现登录拦截
2020/06/29 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
Python写的英文字符大小写转换代码示例
2015/03/06 Python
python中pass语句用法实例分析
2015/04/30 Python
简单掌握Python中glob模块查找文件路径的用法
2016/07/05 Python
python创建文件时去掉非法字符的方法
2018/10/31 Python
python使用装饰器作日志处理的方法
2019/07/11 Python
Python如何实现动态数组
2019/11/02 Python
Python中__repr__和__str__区别详解
2019/11/07 Python
如何用H5实现一个触屏版的轮播器的实例
2017/01/09 HTML / CSS
伦敦最有品味的百货:Liberty London
2016/11/12 全球购物
Under Armour安德玛法国官网:美国高端运动科技品牌
2018/06/29 全球购物
公司人力资源的自我评价
2014/01/02 职场文书
2015年建筑工作总结报告
2015/05/04 职场文书
酒桌上的开场白
2015/06/01 职场文书
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
一篇文章了解正则表达式的替换技巧
2022/02/24 Javascript
分享7个 Python 实战项目练习
2022/03/03 Python