代码之家  ›  专栏  ›  技术社区  ›  Armond Hambarchian

回调不是selectize中的函数错误

  •  0
  • Armond Hambarchian  · 技术社区  · 7 年前

    我正在做一个yii2基础项目,我在表单中使用了selectize扩展。 当我运行这部分时,它返回一个错误:回调不是函数

    report\u cp是一个下拉字段,选择一个值后,它将启用第二个字段,并将url+所选值的函数设置为report\cs。负载

    这里是JSFIDLE链接 https://jsfiddle.net/6uhLts2w/5/ 使用测试json服务器替换URL

        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 回复  |  直到 7 年前
        1
  •  2
  •   Torv hmuelner    7 年前

    检查 documentation .

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

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