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);
Chosen通用初始化的更多相关文章
- winform DataGridView 通用初始化
void DGV_Init() { //名称 类型 设备数 累计转发次数 累计转发数据数 状态 ; i < ; i++) { DataGridViewTextBoxColumn dc = new ...
- linux内存管理初始化
内存管理子系统是linux内核最核心最重要的一部分,内核的其他部分都需要在内存管理子系统的基础上运行.而对其初始化是了解整个内存管理子系统的基础.对相关数据结构的初始化是从全局启动例程start_ke ...
- Swift5 语言指南(十六) 初始化
初始化是准备要使用的类,结构或枚举的实例的过程.此过程涉及为该实例上的每个存储属性设置初始值,并执行在新实例准备好使用之前所需的任何其他设置或初始化. 您可以通过定义实现这个初始化过程初始化,这就像特 ...
- Pytorch系列:(七)模型初始化
为什么要进行初始化 首先假设有一个两层全连接网络,第一层的第一个节点值为 \(H_{11}= \sum_{i=0}^n X_i*W_{1i}\), 这个时候,方差为 \(D(H_{11}) = \su ...
- 简单的c#winform象棋游戏(附带源码)
算法源自网络(网络源码连接:http://www.mycodes.net/161/6659.htm) 整体思路:用二维数组构建棋盘每一个数组元素封装为一个picturebox附带若干属性(例如:棋 ...
- smartjs - DataManager API
dataServices 数据服务的管理器:首先看下具体的代码 //数据服务 dataServices = st.factory({ name: "dataServices", p ...
- Linux就这个范儿 第10章 生死与共的兄弟
Linux就这个范儿 第10章 生死与共的兄弟 就说Linux系统的开机.必须经过加载BIOS.读取MBR.Boot Loader.加载内核.启动init进程并确定运行等级.执行初始化脚本.启动内核模 ...
- [BS-05] init、initWithFrame和initWithCoder的区别
init.initWithFrame和initWithCoder的区别 1.Xib方式自定义UIView(指任意的UI控件) 使用Xib文件,就是我们所常用的“拖控件”的方式.如果我们使用了该方法创建 ...
- C++—复合类型
内容概要: -创建和使用数组 -创建和使用C-风格字符串 -创建和使用string类字符串 -使用方法getline()和get()读取字符串 -混合输入字符串和数字 -创建和使用结构 -创建和使用共 ...
随机推荐
- vue-cli 官方模板webpack-simple的npm run dev 与npm run bulid的一些问题
npm run dev命令后并不会在dist目录下生成build.js文件,开发环境下build.js是在运行内存中的. 在package.json的scripts属性的dev后面加上--port 8 ...
- html bottom html submit按钮表单控件与CSS美化
一.html submit与bottom按钮基本语法结构 1.html submit按钮在input标签里设置type="submit"即可设置此表单控件为按钮. submit按钮 ...
- CRS-2800 CRS-4000
I was installing Clusterware using ASM on VMware shared disks. When I created the independent persi ...
- 腾讯面试题:10G 个整数,乱序排列,要求找出中位数。内存限制为 2G。
腾讯面试题:10G 个整数,乱序排列,要求找出中位数.内存限制为 2G. 题目和基本思路都来源网上,本人加以整理. 题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数.内存限制为 2G.只 ...
- Spring MVC DispatcherServlet绑定多种URL
需要学习的内容: http://my.oschina.net/shishuifox/blog/215617 当前的处理方式,在web.xml中配置: <servlet> <servl ...
- Atom 编辑器系列视频课程
此课程为 Atom 编辑器系列课程,主要介绍了 Atom 的高效开发技巧以及必备插件. 课程列表 Atom编辑器系列课程 #1 - Atom简介 Atom编辑器系列课程 #2 - 设置简介 Atom编 ...
- I/O模型浅析
引入 首先来说一下进程: 进程在就是一段执行中的代码,他是由一条条指令和数据组成的一个具有生命周期的有头有尾的实体. 进程根据权限大体上可以分为两类:用户进程 和 内核进程. 这两者的主要区别在于权限 ...
- yii2 中布局文件的 设置方法
网页主题应用的属性: [yii\base\Application::layout|layout 该属性指定渲染 视图 默认使用的布局名字,默认值为 'main' 对应布局路径下的 main.php 文 ...
- 《JAVASCRIPT高级程序设计》根植于原型链的继承
继承是面向对象的语言中,一个最为津津乐道并乐此不疲的话题之一.JAVASCRIPT中的继承,主要是依靠原型链来实现的.上一篇文章介绍过,JAVASCRIPT中,每一个对象都有一个prototype属性 ...
- 使用PMD进行代码审查
很久没写博客了,自从上次写的设计模式的博客被不知名的鹳狸猿下架了一次之后兴趣大减,那时候就没什么兴致写博客了,但是这段时间还没有停下来,最近也在研究一些其他的东西,目前有点想做点东西的打算,但好像也没 ...