当从服务器

时间:2016-11-05 17:49:33

标签: javascript jquery selectize.js

我尝试为我的表单创建一个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中添加。

请帮助我。 谢谢大家。

1 个答案:

答案 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);

        });