我尝试为我的表单创建一个Select输入,我使用了Selectize.js,
这很好,但我有点问题。
我加载了我的选项,从服务器添加数据,没关系。
当我尝试创建数据编辑器时,我必须在表单输入中加载最后一个数据。
在选择框中,我加载了选项,我想将其中一些设置为默认选中。
我写了这段代码:
var $select = $(this).selectize({
create: false,
valueField: 'id',
labelField: 'title',
searchField: ['title'],
plugins: ['remove_button'],
preload: true,
render: {
item: function (item, escape) {
return '<div>' +
(item.title ? '<span class="title">' + escape(item.title) + '</span>' : '') +
'</div>';
},
options: function (item, escape) {
return '<div>' +
(item.id ? '<span class="title">' + escape(item.id) + '</span>' : '') +
'</div>';
},
},
onDelete: function (values) {
return confirm(values.length > 1 ? 'آیا شما میخواهید ' + values.length + ' مورد را حذف کنید؟' : 'آیا شما از حذف این مورد اطمینان دارید؟');
},
load:function(query, callback){
$.getJSON( url,{mdl:mdl,action:action,id:id}, function( res ) {
callback((res.select))
});
}
});
我尝试使用此代码设置默认值:
var selectize = $select[0].selectize;
selectize.setValue("1");
它不起作用...... 我试过这段代码:
var selectize = $select[0].selectize;
var opt = {id:1,title:"عمومی"}
selectize.addOption(opt);
selectize.setValue("1");
它有效,但是,在这个解决方案中,我必须首先从服务器添加选定的选项TWICE,然后在JavaScript中添加。
请帮助我。 谢谢大家。
答案 0 :(得分:0)
我找到了解决方案:
更改这样的代码解决了所有问题:
var $select = $(this).selectize({
create: false,
valueField: 'value',
labelField: 'title',
searchField: ['title'],
maxItems: 3,
plugins: ['remove_button'],
preload: true,
render: {
item: function (item, escape) {
return '<div>' +
(item.title ? '<span class="title">' + escape(item.title) + '</span>' : '') +
'</div>';
},
options: function (item, escape) {
return '<div>' +
(item.id ? '<span class="title">' + escape(item.id) + '</span>' : '') +
'</div>';
},
},
onDelete: function (values) {
return confirm(values.length > 1 ? 'آیا شما میخواهید ' + values.length + ' مورد را حذف کنید؟' : 'آیا شما از حذف این مورد اطمینان دارید؟');
},
});
var selectize = $select[0].selectize;
$.getJSON( url,{mdl:mdl,action:action,id:id}, function( res ) {
selectize.addOption(res.select);
selectize.addItem(res.select);
var value = [1,2,3,4];
selectize.setValue(value);
});