由于博客系统的原因,所以只能演示简单的功能。
一.文件需要引入select2.full.js、select2.min.css(4.0.1版本)和jquery.1.8.3及以上
最新版本的select2如果引用的jquery版本较低的话,某些功能无法正常使用。比如:清除功能allowClear: true
最新版本请使用<select></select>标签(对于本地化的数据你可以使用input,但ajax远程数据必须使用select)
二.placeholder
placeholder占位提示文字,如果需要清楚功能,则必须设置placeholder。
三.加载本地数据
select2默认的数据属性是id、text,新版本可以自定义,但还是用默认的比较好。所以提供的json中最好转换为id、text形式,当然可以添加其他属性。
var data = [{ id: 0, text: "enhancement" }, { id: 1, text: "bug" }, { id: 2, text: "duplicate" }, { id: 3, text: "invalid" }, { id: 4, text: "wontfix" }];$("#c01-select").select2({ data: data, placeholder:"请选择", allowClear:true})四.加载远程数据
$("#c01-select").select2({ ajax: { url: "data.json", dataType: "json", delay: 250, data: function (params) {return {q: params.term,}; }, processResults: function (data) {return {results: data}; }, cache: true }, escapeMarkup: function (markup) { return markup; },minimumInputLength: 1, templateResult: formatRepo,templateSelection: formatRepoSelection });说明:
var res=$("#c01-select").select2("data")[0] ; //单选var reslist=$("#c01-select").select2("data"); //多选if(res==undefined){alert("你没有选中任何项");}if(reslist.length){alert("你选中任何项");}六.清空选择项和设置不可用
//清空选择$("#c01-select").val(null).trigger("change");$("#c01-select").val("你的placeholder").trigger("change");//或者//如果你使用的是input标签(默认就是本地数据),你可以用$("#c01-select").val("");来清空选项//disabled$("#c01-select").prop("disabled", false);//可用$("#c01-select").prop("disabled", true);//不可用七.启用多选
$("#c01-select").select2({ data:data, multiple: true});多选演示:
八.下面简单说明新版与老版对比
1.结果回调和选中回调名称:formatResult、formatSelection(老版);templateResult、templateSelection(新版)
2.初始化:
//老版,注意如果初始化时文本框中本身没有值(为空),则不会触发该方法initSelection: function (element, callback) { var id = $(element).val(); var data = { id: id, text: id};//这里是初始化的数据,你可以通过id来从服务器上获取(ajax),再装载进去 callback(data);}//新版,直接给select添加option$("#id").append(new Option("Jquery", 10001, false, true));//或者$("#id").append("<option value="10001">Jquery</option>");3.获取或设置值:select2("val")(老版);$("select").val()(新版)
var res = $("#id").select2("data");//返回数组,单选就取res[0];好处是不进可以获取id、text还可以获取其他属性,如res[0].names4.停用或启用:$("select").enable(false);(老版);$("select").prop("disabled", true);(新版)