回调不是选择中的函数错误

时间:2017-12-10 07:40:01

标签: javascript jquery selectize.js

我在yii2-basic项目上工作,我使用了表格的选择性扩展。 当我运行这部分时它返回一个错误:回调不是一个函数

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

这是JsFiddle链接https://jsfiddle.net/6uhLts2w/5/,其中包含带有测试json服务器的替换网址

    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...

1 个答案:

答案 0 :(得分:1)

检查documentation

  

通过调用提供的函数加载选项。该函数应该接受一个参数(回调),并在结果可用后调用回调。

因此您应该使用report_cs.load(function (callback) {}...

之类的内容