select2插件单选、多选

html:

select2单选

<form class="form-horizontal" role="form" id="form">

<select id="singleSelect" name="singleSelect" data-placeholder=“请选择” style="width:100%;"></select>

</form>

select2多选

<form class="form-horizontal" role="form" id="form">

<select id="mutiSelect" name="mutiSelect" multiple="multiple" data-placeholder=“请选择” style="width:100%;"></select>

</form>

 

注意:placeholder属性在select2插件初始化时无效,必须在html中写入才有作用

js:

select2单选插件初始化

$('#singleSelect').select2({
data:[]
}).on('change', function() {

//$(this).valid();可以即时验证
});

select2多选插件初始化

$('#mutiSelect').select2({
allowClear: true,
data:[]
}).on('change', function() {

//$(this).valid();可以即时验证
});

 

注意:

data中格式为json数组[{id:1,text:选项1},{id:1,text:选项2}];

allowClear:允许清除选项

valid方法是jquery.validate.js中的方法,调用时需要初始化方法validate( );而且由于使用select2美化select下拉列表后,select2会把原来的select隐藏掉,设置css属性(display:none),然后再通过select2重新定制界面,且jquery.validate.js默认不是校验:hidden属性的控件,所以如果验证select选择框,需要在下面函数写入ignore:""

$('#form').validate({
ignore:"",
rules: {
mutiSelect:{
required:true
}
},
messages: {
mutiSelect:{
required:"至少选择一个模块"
}
},    
debug: false,

});

 

获取select单选选中的值的id:

$("#singleSelect option:checked").val();

获取select单选选中的值的text:

$("#singleSelect option:checked").text();

获取select多选选中的值id:

$('#mutiSelect').select2('val');

获取select多选选中的text值:

$('#mutiSelect option:checkd').text.join(",");

select2插件重新赋值data数据:

data中格式为json数组:data=[{id:1,text:选项1},{id:1,text:选项2}];

$('#singleSelect').select2({
data:data
});

select2插件赋值:

单选:var value = 1;

单选:var value1 = [1,2];
$('#singleSelect').val(value).trigger('change');

$('#mutiSelect').val(value1).trigger('change');

如何不触发select2给下拉框赋值:

$('#singleSelect').val(value).select();

 

posted @ 2019-11-12 12:31  bud  阅读(3468)  评论(0编辑  收藏  举报