x-editable typeahead ajax source

时间:2016-05-02 09:34:46

标签: ajax typeahead x-editable

我不想在我的代码local: ['LONDON', 'BERLIN', 'NEW YORK', 'MADRID']中打印所有城市。我想在每次用户输入一个字母时进行查询。

我可以使用ajax来使用“x-editable typeahead”自动完成吗?

HTML:

<li><label class="control-label">CITY:</label> <span id="userCity" data-
type="typeaheadjs" data-pk="cityID" data-name="users">PARIS</span></li>

JS:

$('#userCity').editable({
    url: 'ajax/editUser.php',
    typeahead: {
        local: ['LONDON', 'BERLIN', 'NEW YORK', 'MADRID']
    }
});

1 个答案:

答案 0 :(得分:1)

以防这可能对某人有所帮助,看起来X-Editable的当前1.5.1版本不支持将dataset参数传递给typeahead构造函数。有一个pull请求可以实现对此处记录的https://github.com/vitalets/x-editable/pull/664的支持。

要快速解决此问题,您需要更新第45行附近的inputs-ext/typeaheadjs/typeaheadjs.js

this.$input.typeahead.apply(this.$input, this.options.typeahead);

然后您可以将X-Editor实例化为:

var bloodhound = new Bloodhound({
    remote: '/url/to/json/output'
    // any other bloodhound options here
});

bloodhound.initialize();

$('#editable-field').editable({
    type: 'typeaheadjs',
    typeahead: [{
        hint: true,
        highlight: true
        // any other typeahead options
    }, {
        source: bloodhound.ttAdapter()
        // any other dataset options
    }]
});