select2初始化默认选中值(多选)
$('body').on('click', '.btnedit', function() { //点击按钮事件
$('input[name=name]').val($(this).attr('data-name')); //name赋值
$('input[name=nickname]').val($(this).attr('data-nickname')); //nickname赋值
var tag=$(this).attr('data-tagid_list');
var ddd = [];
var data =<?php echo json_encode($groups);?>;
var aarr=eval(data);
for(i=0;i<aarr.length;i++){
ddd.push(aarr[i]['name']);
}
$("#tags").select2({
data: ddd,
placeholder: "请选择啊"
});
$("#tags").val(tag.split(",")).trigger('change');
});
之前用select2初始化默认值使用了select2('val','1'),这样做没问题,但只能用在单选上,多选的话,即使将val后面的值改成数组['0', '2']这种形式也没用。
<script type="text/javascript"> $(document).ready(function() { var data = [{ id: 0, text: 'aaa' }, { id: 1, text: 'bbb' }, { id: 2, text: 'ccc' }]; $(".js-example").select2({ data: data, placeholder: "请选择啊" }); $(".js-example").select2('val','1') }); </script> <select class="js-example new-select" multiple="multiple"> </select>
如何初始化出多选呢,在stackoverflow找到了答案,那就是用$(".js-example").val(['0','2']).trigger('change')这种方法。
把上面代码中的$(".js-example").select2('val','1')换成$(".js-example").val(['0','2']).trigger('change')就OK了。