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实现兼容各大浏览器的Enter回车切换输入焦点的方法
Sep 01 Javascript
招聘网站基于jQuery实现自动刷新简历
May 10 Javascript
JS实现黑色大气的二级导航菜单效果
Sep 18 Javascript
JavaScript实现的SHA-1加密算法完整实例
Feb 02 Javascript
JS自定义函数对web前端上传的文件进行类型大小判断
Oct 19 Javascript
bootstrapValidator自定验证方法写法
Dec 01 Javascript
touch.js 拖动、缩放、旋转 (鼠标手势)功能代码
Feb 04 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
Apr 24 Javascript
JS中的三个循环小结
Jun 20 Javascript
jQuery:unbind方法的使用详解
Aug 14 jQuery
详解React Native顶|底部导航使用小技巧
Sep 14 Javascript
如何进行微信公众号开发的本地调试的方法
Jun 16 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二维/三维数组转字符串
2013/09/13 PHP
php实现计数器方法小结
2015/01/05 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
jQuery.each()用法分享
2012/07/31 Javascript
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
JavaScript中的闭包介绍
2015/03/15 Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
2015/09/17 Javascript
JavaScript驾驭网页-DOM
2016/03/24 Javascript
jQuery实现三级菜单的代码
2016/05/09 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
bootstrap与Jquery UI 按钮样式冲突的解决办法
2016/09/23 Javascript
微信小程序实现验证码获取倒计时效果
2018/02/08 Javascript
使用react context 实现vue插槽slot功能
2019/07/18 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
2020/08/14 Javascript
实现vuex原理的示例
2020/10/21 Javascript
python中getattr函数使用方法 getattr实现工厂模式
2014/01/20 Python
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
python实现图片识别汽车功能
2018/11/30 Python
pyside+pyqt实现鼠标右键菜单功能
2020/12/08 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
Python企业编码生成系统总体系统设计概述
2019/07/26 Python
使用css3 属性如何丰富图片样式(圆角 阴影 渐变)
2012/11/22 HTML / CSS
英国探险旅游专家:Explore
2018/12/20 全球购物
保加利亚手表、香水、化妆品和珠宝购物网站:Brasty.bg
2020/04/22 全球购物
企业宣传方案
2014/03/04 职场文书
信用社竞聘演讲稿
2014/05/16 职场文书
旅游饭店管理专业自荐书
2014/06/28 职场文书
责任书格式范文
2014/07/28 职场文书
小学语文教师年度考核个人总结
2015/02/05 职场文书
自主招生专家推荐信
2015/03/26 职场文书
交通事故案件代理词
2015/05/23 职场文书
信仰纪录片观后感
2015/06/08 职场文书
创业计划书之餐饮馄饨店
2019/07/18 职场文书