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 相关文章推荐
javascript 特性检测并非浏览器检测
Jan 15 Javascript
jQuery 表单验证扩展代码(一)
Oct 11 Javascript
js 函数调用模式小结
Dec 26 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
Sep 21 Javascript
JS拖拽插件实现步骤
Aug 03 Javascript
JS实现超精简的链接列表在固定区域内滚动效果代码
Nov 04 Javascript
Jq通过td获取同行其它列td的方法
Oct 05 Javascript
javascript删除html标签函数cIsHTML
Jan 09 Javascript
Angular2入门教程之模块和组件详解
May 28 Javascript
浅谈express 中间件机制及实现原理
Aug 31 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
Mar 07 Javascript
js实现GIF动图分解成多帧图片上传
Oct 24 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
正义联盟的终局之战《天启星战争》将成为DC动画宇宙的最后一部
2020/04/09 欧美动漫
php 5.3.5安装memcache注意事项小结
2011/04/12 PHP
php正则表达式(regar expression)
2011/09/10 PHP
使用PHP下载CSS文件中的图片的代码
2013/09/24 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
2016/04/30 PHP
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
javascript IFrame 强制刷新代码
2009/07/23 Javascript
JS面向对象编程 for Cookie
2010/09/19 Javascript
原生javascript实现获取指定元素下所有后代元素的方法
2014/10/28 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
2015/03/13 Javascript
去除字符串左右两边的空格(实现代码)
2016/05/12 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
nuxt框架中路由鉴权之Koa和Session的用法
2018/05/09 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
JavaScript中的一些实用小技巧总结
2019/04/07 Javascript
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
微信小程序 自定义弹窗实现过程(附代码)
2019/12/05 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
python分析apache访问日志脚本分享
2015/02/26 Python
python3 图片referer防盗链的实现方法
2018/03/12 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
Python Selenium自动化获取页面信息的方法
2020/08/31 Python
HearthSong官网:儿童户外玩具、儿童益智玩具
2017/10/16 全球购物
编写一个类体现构造,公有,私有方法,静态,私有变量
2013/08/10 面试题
如何利用XMLHTTP检测URL及探测服务器信息
2013/11/10 面试题
构造方法和其他方法的区别
2016/04/26 面试题
宝葫芦的秘密观后感
2015/06/11 职场文书
高温慰问简报
2015/07/21 职场文书
解除合同协议书范本
2016/03/21 职场文书
职场领导同事生日简短祝福语
2019/08/06 职场文书
聊聊JS ES6中的解构
2021/04/29 Javascript