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 相关文章推荐
把textarea中字符串里含有的回车换行替换成&amp;lt;br&amp;gt;的javascript代码
Apr 20 Javascript
javascript dom代码应用 简单的相册[firefox only]
Jun 12 Javascript
style、 currentStyle、 runtimeStyle区别分析
Aug 01 Javascript
JS中判断null、undefined与NaN的方法
Mar 26 Javascript
jQuery截取指定长度字符串的实现原理及代码
Jul 01 Javascript
自己编写的支持Ajax验证的JS表单验证插件
May 15 Javascript
js简单判断移动端系统的方法
Feb 25 Javascript
JS之获取样式的简单实现方法(推荐)
Sep 13 Javascript
详解angular2封装material2对话框组件
Mar 03 Javascript
解决vue select当前value没有更新到vue对象属性的问题
Aug 30 Javascript
七行JSON代码把你的网站变成移动应用过程详解
Jul 09 Javascript
深入分析JavaScript 事件循环(Event Loop)
Jun 19 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/06/25 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
javascript getElementsByClassName实现代码
2010/10/11 Javascript
为超链接加上disabled后的故事
2010/12/10 Javascript
读jQuery之二(两种扩展)
2011/06/11 Javascript
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
2013/06/14 Javascript
Jquery实现的一种常用高亮效果示例代码
2014/01/28 Javascript
js日期对象兼容性的处理方法
2014/01/28 Javascript
JavaScript检测实例属性, 原型属性
2015/02/04 Javascript
JS图片压缩(pc端和移动端都适用)
2017/01/12 Javascript
canvas压缩图片转换成base64格式输出文件流
2017/03/09 Javascript
使用ajax的post同步执行(实现方法)
2017/12/21 Javascript
vue 全选与反选的实现方法(无Bug 新手看过来)
2018/02/09 Javascript
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
2018/09/14 Javascript
Vue resource三种请求格式和万能测试地址
2018/09/26 Javascript
详解项目升级到vue-cli3的正确姿势
2019/01/28 Javascript
Vue编程式跳转的实例代码详解
2019/07/10 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
2020/10/29 Javascript
为Python的web框架编写前端模版的教程
2015/04/30 Python
python Socket之客户端和服务端握手详解
2017/09/18 Python
Python通过属性手段实现只允许调用一次的示例讲解
2018/04/21 Python
python删除不需要的python文件方法
2018/04/24 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
python判断两个序列的成员是否一样的实例代码
2020/03/01 Python
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
求网格中的黑点分布
2013/11/06 面试题
大四自我鉴定范文
2013/10/06 职场文书
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
优秀教师申报材料
2014/12/16 职场文书
干部考察材料范文
2014/12/24 职场文书
销售经理岗位职责
2015/01/31 职场文书
滴水洞导游词
2015/02/10 职场文书
比赛主持人开场白
2015/05/29 职场文书
如何在pycharm中快捷安装pip命令(如pygame)
2021/05/31 Python
比较几种Redis集群方案
2021/06/21 Redis
详解Flutter自定义应用程序内键盘的实现方法
2022/06/14 Java/Android