Callback is not a function 错误在selectize

Callback is not a function error in selectize

我正在做一个 yii2-basic 项目,我为我的表单使用了 selectize 扩展。 当我 运行 这部分时 returns 一个错误:回调不是一个函数

report_cp 是一个下拉字段,在选择一个值后它将启用第二个字段并将具有 url + 所选值的函数设置为 report_cs.load

这里是 JsFiddle link https://jsfiddle.net/6uhLts2w/5/ 用测试 json server

替换了 urls
    var report_cp; // all these are dropdown inputs
    var report_cs; // at start disabled, will enable after report_cp value selected
    var report_cnt; // at start disabled, will enable after report_cs value selected

    report_cp = $('#reports-cp').selectize({
        onChange: function(value) {
            if (!value.length) return;

            report_cs.enable();

            report_cs.load(function (query, callback) {
                if (!query.length) return callback();
                $.getJSON('../search/sections?id=' + value, { query: encodeURIComponent(query) }, function (data) { callback(data); })//error is right here
                .fail(function () { callback(); });
            });
        },
        load:function (query, callback) { //retrieve select options from database
                if (!query.length) return callback();
                $.getJSON('../search/companies', { query: encodeURIComponent(query) }, function (data) { callback(data); })
                .fail(function () { callback(); });
        },
        valueField: 'id',
        labelField: 'name',
        searchField: ['name'],
        persist: false,
        createOnBlur: true,
        maxItems: 1,
        create: true
    });

    report_cs = $('#reports-cs').selectize({
        onChange: function(value) {
            if (!value.length) return;

            report_cs.load(function (query, callback) {
                if (!query.length) return callback();
                $.getJSON('../search/contacts?id=' + value, { query: encodeURIComponent(query) }, function (data) { callback(data); report_cs.enable(); })
                .fail(function () { callback(); });
            });
        },
        valueField: 'id',
        labelField: 'name',
        searchField: ['name'],
        persist: false,
        createOnBlur: false,
        maxItems: 1,
        create: false
    });
    //report_cnt same as report_cs goes here...

勾选documentation

Loads options by invoking the provided function. The function should accept one argument (callback) and invoke the callback with the results once they are available.

所以你应该使用 report_cs.load(function (callback) {}...