博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Chosen通用初始化
阅读量:6829 次
发布时间:2019-06-26

本文共 4538 字,大约阅读时间需要 15 分钟。

一直在用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 += ""; }); $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);

 

转载于:https://www.cnblogs.com/bobo-pcb/p/6513582.html

你可能感兴趣的文章
C#中的Action<>和Func<>
查看>>
关于opencv中人脸识别主函数的部分注释详解。
查看>>
SQLServer内核架构剖析 (转载)
查看>>
Android 风格化的 Toggle Buttons
查看>>
Eclipse中SVN的安装步骤(两种)和用法
查看>>
安全运维之:网络实时流量监测工具iftop
查看>>
在 Windows上配置NativeScript CLI
查看>>
ubuntu14.04 qt4 C++开发环境搭建
查看>>
iOS 通讯录-获取联系人属性
查看>>
HTML5 文件域+FileReader 读取文件(一)
查看>>
有return的情况下try catch finally的执行顺序
查看>>
OSI七层模型具体解释
查看>>
9.中位数与顺序统计量
查看>>
第二章 知识图谱——机器大脑中的知识库
查看>>
Android 从清单配置文件元数据中获取值
查看>>
UML用例图
查看>>
Bitmap基本概念及在Android4.4系统上使用BitmapFactory的注意事项
查看>>
Objective-C:MRC(引用计数器)获得对象所有权的方式(init、retain、copy等)
查看>>
PowerShell 在线教程 4
查看>>
不要让你的未来,现在恨自己
查看>>