我在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...
答案 0 :(得分:1)
通过调用提供的函数加载选项。该函数应该接受一个参数(回调),并在结果可用后调用回调。
因此您应该使用report_cs.load(function (callback) {}...