一直在用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
相关文章:
北京建设网站制作公司,北京古代建筑博物馆预约官网?
如何快速上传建站程序避免常见错误?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
高端建站三要素:定制模板、企业官网与响应式设计优化
桂林网站制作公司有哪些,桂林马拉松怎么报名?
电商网站制作公司有哪些,1688网是什么意思?
c++怎么用jemalloc c++替换默认内存分配器【性能】
如何访问已购建站主机并解决登录问题?
如何通过虚拟主机快速完成网站搭建?
建站三合一如何选?哪家性价比更高?
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
如何快速搭建二级域名独立网站?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
已有域名如何免费搭建网站?
营销式网站制作方案,销售哪个网站招聘效果最好?
建站ABC备案流程中有哪些关键注意事项?
建站VPS推荐:2025年高性能服务器配置指南
南平网站制作公司,2025年南平市事业单位报名时间?
香港服务器部署网站为何提示未备案?
如何选择最佳自助建站系统?快速指南解析优劣
如何快速搭建高效WAP手机网站?
建站之星后台管理系统如何操作?
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
IOS倒计时设置UIButton标题title的抖动问题
如何在香港服务器上快速搭建免备案网站?
微信小程序制作网站有哪些,微信小程序需要做网站吗?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
如何用搬瓦工VPS快速搭建个人网站?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
如何快速完成中国万网建站详细流程?
成都网站制作报价公司,成都工业用气开户费用?
广州商城建站系统开发成本与周期如何控制?
定制建站模板如何实现SEO优化与智能系统配置?18字教程
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
网站制作价目表怎么做,珍爱网婚介费用多少?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
如何在建站宝盒中设置产品搜索功能?
学校建站服务器如何选型才能满足性能需求?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
如何通过.red域名打造高辨识度品牌网站?
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
无锡营销型网站制作公司,无锡网选车牌流程?
c# 在ASP.NET Core中管理和取消后台任务
怀化网站制作公司,怀化新生儿上户网上办理流程?
如何配置IIS站点权限与局域网访问?
教程网站设计制作软件,怎么创建自己的一个网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。