官方文档(推荐): select2参数文档说明
参考博客:
1.使用 Select2下拉框总结
select2使用方法总结
Select2学习总结
老版本select2设置初始值
JS组件系列——Bootstrap Select2组件使用小结
2.事件 jquery插件select2的所有事件,包括清除,删除,打开等
3.参数详解 bootstrap select2 参数详解
select2 api参数的文档
样例(来自官方文档)
$("#e7").select2({
placeholder: "Search for a repository",
minimumInputLength: 3,
ajax: {
url: "https://api.github.com/search/repositories",
dataType: 'json',
quietMillis: 250,
data: function (term, page) { // page is the one-based page number tracked by Select2
return {
q: term, //search term
page: page // page number
};
},
results: function (data, page) {
var more = (page * 30) < data.total_count;
// whether or not there are more results available
// notice we return the value of more so Select2 knows if more results can be loaded
return { results: data.items, more: more };
}
},
formatResult: repoFormatResult, // omitted for brevity, see the source of this page
formatSelection: repoFormatSelection, // omitted for brevity, see the source of this page
dropdownCssClass: "bigdrop", // apply css that makes the dropdown taller
escapeMarkup: function (m) { return m;
} // we do not want to escape markup since we are displaying html in results
});
常用事件
// 改变事件
$("#e11").on("change", function(e) {});
// select2 打开事件
$("#e11").on("select2-open", function(e) {});
// select2 关闭事件
$("#e11").on("select2-close", function(e) {});
// 选中事件
$("#e11").on("select2-selecting", function(e) {});
// 移除完毕事件。配置allowClear: true后触发
$("#e11").on("select2-removed", function(e) {});
// 加载中事件
$("#e11").on("select2-loaded", function(e) {});
//获得焦点事件
$("#e11").on("select2-focus", function(e) {});
//失去焦点事件
$("#e11").on("select2-blur", function(e) {});
函数
// 获取选中的ID值
$("#e1").select2("val"));
// id="CA" 选中(好像单个还不行,以数组形式才行)
$("#e2").select2("val", "CA");
// 不选中任何值
$("#e2").select2("val", "");
// 获取选中的对象
$("#e2").select2("data");
//设置选中的值:id="CA",text="California"
$("#e2").select2("data", {id: "CA", text: "California"});
// 获取选中JSON对象
JSON.stringify($("#e2").select2("data")));
//多选设值
$("#e2").select2("data", [{id: "CA", text: "California"},{id:"MA", text: "Massachusetts"}]);
参数
templateResult : formatState, // 列表带图片
templateSelection : formatState, // 选中的带图片language: "zh-CN", //设置 提示语言
width: "100%", //设置下拉框的宽度
placeholder: "请选择", // 空值提示内容,选项值为 null
//placeholder: {id: '', text: "请选择"}, // 同上,这里默认空值为 ''
minimumInputLength: 10,//最小需要输入多少个字符才进行查询
maximumInputLength:11, //最大输入长度
allowClear: true, //是否允许手动点击删除
tags: false,// 根据搜索框创建option,默认false
selectOnClose: true, // 如果没有手动选中,下拉框消失后会自动选中被hover的选项 (不建议使用)
closeOnSelect: false, // 选择后下拉框不会关闭(单选-不建议使用)
minimumResultsForSearch: Infinity, // 隐藏搜索框
theme: "classic", // 样式
separator: ",",// 分隔符
data: initdata,// 下拉框绑定的数据
multiple: true,// 多选,默认falsemaximumSelectionLength: 3,// 多选 - 设置最多可以选择多少项
tokenSeparators: [',', ' '], // 多选 - 输入逗号和空格会自动完成一个选项 前提是:tags: true//加载远程数据参数
escapeMarkup: function (markup) { return markup;
}, //template的html显示效果,否则输出代码
formatResult:repoFormatResult,// 自定义下拉选项的样式模板。返回结果回调function repoFormatResult(repo){return repo.text},这样就可以将返回结果的的text显示到下拉框里。也可以自定义返回结果样式
formatSelection:repoFormatSelectionl // 自定义选中选项的样式模板。选中项回调function repoFormatSelection(repo){return repo.text}
旧版本设置初始值:
//设置初始值
initSelection:function(element, callback) {
var initData = https://www.it610.com/article/{id:'', text:'默认值'}
callback(initData);
},
样例补充
var selectCustomer;
$(function(){
initSelectCustomer();
});
function initSelectCustomer(){
$("#e2").select2({
ajax: {
url: "/electric/customer/autocomplete",
dataType: 'json',
quietMillis: 500,
data: function (term, page) {
return {
mobilePhone: term,
};
},
results: function (data, page) {
//console.log(data);
var list = new Array();
if(data && data.length >0 ){
$.each(data, function (i,e) {
var obj = {};
obj.id = e.id;
obj.text = e.mobilePhone;
obj.username = e.name;
list.push(obj);
});
}
//console.log(list);
return { results: list};
},
cache:true
},
initSelection:function(element, callback) {
if (!selectCustomer) {
selectCustomer = {id:'${account.customer.id}', text:'${account.customer.mobilePhone}'};
//console.log("customer:id="+selectCustomer.id+",phone="+selectCustomer.text);
}
callback(selectCustomer);
},
placeholder: "输入手机号码",
language:'zh-CN',//语言
maximumInputLength:11,//最大输入长度
minimumInputLength:4,//最小输入长度
width: 'resolve',
allowClear: true,//选中之后,可手动点击删除
dropdownCssClass: "bigdrop",
escapeMarkup: function (m) {return m;
},
formatResult:repoFormatResult,// 自定义下拉选项的样式模板
formatSelection:repoFormatSelection // 自定义选中选项的样式模板
});
$("#e2").on("select2-close", function (e) {
//关闭下拉框事件。获取选中的对象
selectCustomer = $("#e2").select2("data");
//console.log("customer:id="+selectCustomer.id+",phone="+selectCustomer.text);
});
$("#e2").on("select2-removed", function (e) {
//这里是取消选中触发的事件,配置allowClear: true后触发
$("#e2").val('');
$("#mobilePhone").val('');
//console.log("移除完毕。");
});
}
function repoFormatResult(repo) {
//console.log("repo:"+repo);
var markup = '' +
'' +
'' +
''+
'' + repo.text + '' +
'';
markup += '';
return markup;
}function repoFormatSelection(repo) {
//console.log("format:"+repo.id+",text:"+repo.text);
$("#e2").val(repo.id);
$("#mobilePhone").val(repo.text);
return repo.text;
}
【整理(select2的使用、事件、参数详解)】
推荐阅读
- javaweb|基于Servlet+jsp+mysql开发javaWeb学生成绩管理系统
- JavaWeb|JavaWeb学习——CSS
- JavaWeb|JavaWeb学习——用户注册(14)
- 验证码 注意一点存session时
- Spring Boot 版本升级到2
- html模仿淘宝按钮
- 获取客户端IP地址
- javaWeb中使用Excel模板导出业务数据(包含复杂单元格动态合并操作)+附源码
- Tomcat服务器映射图片,文件地址
- JavaWeb|电商后台管理系统项目后台项目的环境安装及配置