全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

jQuery Chosen通用初始化

一直在用Chosen这个js插件,其目的就是美化下拉框。github地址:https://harvesthq.github.io/chosen/

no_results_text:"xxxxx"无搜索结果时显示的文本

allow_single_deselect:true 是否允许取消选择
disable_search: true 是否有搜索框出现

max_selected_options:当select为多选时,最多选择个数

官方说明文档地址

配置选项的官方说明文档地址

/* 功能: Chosen通用初始化
 * 创建人:Brian 创建时间:2016-12-13
 */
(function ($j) {
  var chosenTool = function (el, options) {
    this.opts = options;
    this.chosenInit();
    this.chose_get_init();
    this.chose_mult_set_init(this.opts.hidClassName);
    this.clickEvent();
    return this;
  }
  chosenTool.opts = {
    selectId: '',//selectId
    hidClassName: '',//隐藏域Class
    placeholdertxt: '',//select中placeholder文字
    noresulttxt: '',//输入的名称未查到时显示的文字
    dataJson: ''//数据源
  };
  $j.fn.myChosenTool = function (opt) {
    var value,
      args = Array.prototype.slice.call(arguments, 1);
    var $jthis = $j(this),
      data = $jthis.data('chosenTool'),
      options = $j.extend({}, chosenTool.opts, $jthis.data(),
        typeof option === 'object' && option);
    if (typeof option === 'string') {
      //判断用户调用的方法是否存在
      //if ($j.inArray(option, allowedMethods) < 0) {
      //  throw new Error("Unknown method: " + option);
      //}
      if (!data) {
        return;
      }
      value = data[option].apply(data, args);
      if (option === 'destroy') {
        $jthis.removeData('chosenTool');
      }
    }
    /*插件外部调用插件内部的方法需要修改成下面形式*/
    //if (typeof opt === 'string') {
    //  if (!data) {
    //    return;
    //  }
    //  value = data[opt].apply(data, args);
    //  if (opt === 'destroy') {
    //    $jthis.removeData('chosenTool');
    //  }
    //}
    if (!data) {
      opt["selectId"] = $j(this).attr("id");
      $jthis.data('chosenTool', (data = new chosenTool(this, opt)));
    }
    console.log(data);
    return typeof value === 'undefined' ? this : value;
  };
  chosenTool.prototype.clickEvent = function () {
    var _this = this;
    $j("#" + this.opts.selectId).on("change", function () {
      _this.chose_get_value();
    });
  };
  /*下拉框初始化方法*/
  chosenTool.prototype.selectInfoInit = function () {
    var proOPts = "";
    this.opts.dataJson = $j.parseJSON(this.opts.dataJson);
    $j.each(this.opts.dataJson, function (index, item) {
      proOPts += "<option value='" + item.ValueField + "'>" + item.TextField + "</option>";
    });
    $j("#" + this.opts.selectId).append(proOPts);
    //初始化chosen
    $j("#" + this.opts.selectId).chosen({
      allow_single_deselect: true, //是否允许取消选择
      placeholder_text_multiple: this.opts.placeholdertxt, //多选框没有选中任何值的时候 显示的文字
      no_results_text: this.opts.noresulttxt,//无搜索结果时显示的文本
      search_contains: true//是否支持模糊搜索
    });
  };
  /*对象初始化方法*/
  chosenTool.prototype.chosenInit = function () {
    this.selectInfoInit();
  };
  //私有方法,检测参数是否合法
  chosenTool.prototype.isValid = function () {
    return !this.options || (this.options && typeof this.options === "object") ? true : false;
  };
  //数据同步
  chosenTool.prototype.chose_get_init = function () {
    var selectId = this.opts.selectId;
    $j("#" + this.opts.selectId).chosen().change(
         function () {
           $j("#" + selectId).trigger("liszt:updated");//更新下拉框
         });
  };
  //单选select value获取
  chosenTool.prototype.chose_get_value = function () {
    var selectVal = $j("#" + this.opts.selectId).val();
    $j("." + this.opts.hidClassName).val(selectVal);
  };
  //单选select value获取
  chosenTool.prototype.chose_mult_set_init = function () {
    var values = $j("." + this.opts.hidClassName).val();
    if (values && values.indexOf(',') > 0) {
      var arr = values.split(',');
      var length = arr.length;
      var value = '';
      for (i = 0; i < length; i++) {
        value = arr[i];
        $j("#" + this.opts.selectId + " [value='" + value + "']").attr('selected', 'selected');
      }
    } else {
      $j("#" + this.opts.selectId + " [value='" + values + "']").attr('selected', 'selected');
    }
    $j("#" + this.opts.selectId).trigger("liszt:updated");
  };
  //select text获取,多选时请注意
  chosenTool.prototype.chose_get_text = function () {
    return $j("#" + this.opts.selectId + " option:selected").text();
  };
})(jQuery);

以上所述是小编给大家介绍的jQuery Chosen通用初始化,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# chosen  # 初始化  # jquery  # jQuery Chosen通用初始化  # jQuery中Chosen三级联动功能实例代码  # Jquery chosen动态设置值实例介绍  # Chosen 基于jquery的选择框插件使用方法  # 多选  # 搜索结果  # 下拉框  # 小编  # 单选  # 文档  # 最多  # 在此  # 给大家  # 时请  # 所述  # 给我留言  # 感谢大家  # 是否存在  # 疑问请  # 有任何  # 是否合法  # 数据同步  # opts  # chose_get_init 


相关文章: 网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  宝塔新建站点报错如何解决?  如何在IIS中新建站点并配置端口与物理路径?  专业网站建设制作报价,网页设计制作要考什么证?  建站主机与虚拟主机有何区别?如何选择最优方案?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  如何快速查询网站的真实建站时间?  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何在阿里云虚拟服务器快速搭建网站?  三星网站视频制作教程下载,三星w23网页如何全屏?  大连网站制作公司哪家好一点,大连买房网站哪个好?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  javascript基本数据类型及类型检测常用方法小结  建站与域名管理如何高效结合?  建站之星多图banner生成与模板自定义指南  孙琪峥织梦建站教程如何优化数据库安全?  建站ABC备案流程中有哪些关键注意事项?  C++如何使用std::optional?(处理可选值)  深入理解Android中的xmlns:tools属性  如何制作算命网站,怎么注册算命网站?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  代刷网站制作软件,别人代刷火车票靠谱吗?  如何配置WinSCP新建站点的密钥验证步骤?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  建站之星安全性能如何?防护体系能否抵御黑客入侵?  如何彻底删除建站之星生成的Banner?  如何通过智能用户系统一键生成高效建站方案?  南宁网站建设制作定制,南宁网站建设可以定制吗?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  建站主机解析:虚拟主机配置与服务器选择指南  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  山东云建站价格为何差异显著?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  建站主机系统SEO优化与智能配置核心关键词操作指南  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  如何选择PHP开源工具快速搭建网站?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  如何配置支付宝与微信支付功能?  常州企业网站制作公司,全国继续教育网怎么登录?  如何规划企业建站流程的关键步骤?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  网站制作公司排行榜,四大门户网站排名?  Bpmn 2.0的XML文件怎么画流程图  自助网站制作软件,个人如何自助建网站?  如何在IIS中配置站点IP、端口及主机头?  广州建站公司哪家好?十大优质服务商推荐  简单实现Android文件上传  建站之星2.7模板:企业网站建设与h5定制设计专题 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。