什么时候应该调用selectize.js函数selectize()?

时间:2015-08-14 19:30:35

标签: javascript selectize.js

我正在尝试使用selectize.js在我的应用程序中填充表单上的组合框。

我试图关注"Rotten Tomatoes" model on the selectize web page.但我对此次通话的时机感到有些困惑。作者更喜欢用一点< script>来初始化select。紧跟在< select>的规范之后在html文件中,但我宁愿将所有脚本保存在单独的js文件中。

无论如何,我做了以下

function loadSelect() 
{
    var myAPI = "my/api/";
    var count = 0;
    console.log('in loadSelect()'); 

    $('#myselect').empty();
    $('#myselect').selectize({
        valueField: 'id',
        labelField: 'name',
        searchField: 'name',
        options: [],
        create: true,
        load: function(query, callback) {
            console.log("loading data");
            if (!query.length) {
                console.log("no data loaded");
                return callback();
            }
            $.ajax({
                url: myAPI,
                type: 'GET',
                dataType: 'json',
                data: {
                    q: query,
                },
                error: function() {
                    console.log("failure");
                    callback();
                },
                success: function(res) {
                    console.log("success");
                    count = res.data.length;
                    callback(res.data);
                }
            });    
        }
    });
} 

无论何时调用此loadSelect()函数,无论是来自$(document).ready(function(){还是直接来自html页面,在声明select作为选择作者之后,我发现load()方法永远不会被召唤。请注意console.log语句。第一个,'in loadSelect()'总是触发,但load()函数中的任何日志都不会触发。

Project documentation描述了加载回调,如下所示:

  

应从服务器加载新选项时调用。

但是,当 从服务器加载新选项时,这会引发问题。

无论如何,我该怎样做才能确保加载回调会触发?

1 个答案:

答案 0 :(得分:0)

将选项preload:true添加到传递给选择调用的选项数组中。