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 相关文章推荐
新页面打开实际尺寸的图片
Aug 25 Javascript
键盘 keycode的值 javascript时触发事件时很有用的要素
Nov 02 Javascript
表单元素的submit()方法和onsubmit事件应用概述
Feb 01 Javascript
js获取页面传来参数的方法
Sep 06 Javascript
javascript实现禁止复制网页内容
Dec 16 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
Mar 03 Javascript
Node.js中用D3.js的方法示例
Jan 16 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
Jun 05 Javascript
django简单的前后端分离的数据传输实例 axios
May 18 Javascript
Js实现粘贴上传图片的原理及示例
Dec 09 Javascript
three.js中多线程的使用及性能测试详解
Jan 07 Javascript
详解uniapp的全局变量实现方式
Jan 11 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
在“咖啡之国”感受咖啡文化
2021/03/03 咖啡文化
用PHP实现多服务器共享SESSION数据的方法
2007/03/16 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
easyui datagrid 键盘上下控制选中行示例
2014/03/31 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
js的touch事件的实际引用
2014/10/13 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
浅谈jquery的map()和each()方法
2016/06/12 Javascript
原生js实现jquery函数animate()动画效果的简单实例
2016/08/21 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
2016/11/22 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
JS实现动态修改table及合并单元格的方法示例
2017/02/20 Javascript
jQuery简单实现MD5加密的方法
2017/03/03 Javascript
十大热门的JavaScript框架和库
2017/03/21 Javascript
JavaScript箭头(arrow)函数详解
2017/06/04 Javascript
基于node.js的fs核心模块读写文件操作(实例讲解)
2017/09/10 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
微信小程序select下拉框实现源码
2019/11/08 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
Python open读写文件实现脚本
2008/09/06 Python
Python对列表排序的方法实例分析
2015/05/16 Python
解决Django no such table: django_session的问题
2020/04/07 Python
CSS3美化表单控件全集
2016/06/29 HTML / CSS
Myprotein瑞典官方网站:畅销欧洲英国运动营养品牌
2018/01/22 全球购物
环境卫生标语
2014/06/09 职场文书
跑操口号
2014/06/12 职场文书
纪律教育月活动总结
2014/08/26 职场文书
争先创优活动总结
2014/08/27 职场文书
总经理检讨书范文
2015/02/16 职场文书
联谊活动总结范文
2015/05/09 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
SQLServer 日期函数大全(小结)
2021/04/08 SQL Server