我在select2中尝试initSelection
在我的多选框中加载一些预先选择的数据。用户可以在创建项目时选择多个选项,当他/她再次尝试编辑该项目时,他/她可以看到他/她选择的所有选定值,并从选择中删除/添加值。
它工作正常并加载所有预先选择的选项。它还会在选中的多个选择框中显示它们。但是当我提交表单时,select input的值为null。
这是我的剧本
$('.select2').select2({
minimumInputLength: 2,
"language": {
"noResults": function(){
return "{{Lang::get('lang.no-department-found')}}";
},
searching: function() {
return "{{Lang::get('lang.searching')}}";
},
inputTooShort: function(args) {
// args.minimum is the minimum required length
// args.input is the user-typed text
var remaining = args.minimum - args.input.length;
return "{{Lang::get('lang.please-enter')}} "+remaining+" {{Lang::get('lang.or-more-character')}}";
},
},
ajax: {
url: "{{URL::route('api-get-department-names')}}",
dataType: 'json',
delay: 250,
type: "GET",
quietMillis: 50,
data: function (params) {
return {
name: params.term, // search term
page: params.page
};
},
processResults: function (data) {
return {
results: data
};
},
cache: true
},
initSelection: function(element, callback) {
var id;
id = $(element).val();
if (id !== "") {
$.ajax({
url: "{{URL::route('get-canned-department', $canned->id)}}",
type: "GET",
dataType: "json",
}).done(function(data) {
callback(data);
});;
}
}
});
HTML
<select class="form-control select2" name="d_id[]" multiple="multiple" data-placeholder="{!! Lang::get('lang.enter-department-name') !!}" style="width: 50%;" disabled="true">
</select>
点击链接查看选择框选项,其值为null。 https://drive.google.com/file/d/0B_JQE_eICBj6elpRYVZhU2w5eTA/view?usp=sharing
此外,当我尝试删除一个预先加载的选项时,它会从选择框中删除所有预加载的选项。
请帮我设置select2中的预先填充选项的值并处理删除值选项。 TIA
答案 0 :(得分:0)
我刚刚发现我正在使用select2 v4.0.0 *p
已被弃用并替换为initSelection
方法,以了解有关此版本4.0.0的select2 release announcements的更多信息< / p>
我通过更新我的脚本解决了我的问题,如下所示
current