选择:动态更改设置

时间:2018-01-09 05:47:28

标签: jquery selectize.js

我很难找到一种方法来动态改变选择的设置

在我的js的上半部分,我已经开始了这样的选择:

    var selectize = $('select').selectize({
    .... others params...,
    .... others params...,
    load: function(query, callback) {
        $.ajax({
            url: "http://sample.com/test1", // Old remote url
            type: 'GET',
            data : {
                search : query
            },
            dataType : "json",
            error: function() {
                callback();
            },
            success: function(results) {
                if(results.data == undefined){
                    callback();
                }else{
                    callback(results.data); 
                }
            }
        });
    }
})[0].selectize;

在某些时候,我需要在点击按钮时更改选择的网址。我尝试了下面的代码。

selectize.clear();
selectize.clearOptions();
selectize.load(function(callback) {
    this.settings.url = "http://sample.com/test2";  // New remote url
    $.ajax({            
        url: this.settings.url,
        success: function(response) {
            callback(response.data);
        },
        error: function() {
            callback();
        }
    })
});

选项已更新,但网址仍然相同。当用户在搜索框中键入时,搜索查询将使用旧URL。

1 个答案:

答案 0 :(得分:1)

我已成功找到一个解决方案,但它有点乱。

selectize.settings.load =  function(query, callback) {
    $.ajax({
        url: "http://sample.com/test2", // NEW remote url
        type: 'GET',
        data : {
            search : query
        },
        dataType : "json",
        error: function() {
            callback();
        },
        success: function(results) {
            if(results.data == undefined){
                callback();
            }else{
                callback(results.data); 
            }
        }
    });
}

我希望有人能找到比这更好的解决方案。如果在选择的文档中存在这种情况会更好。