在循环中设置的Twitter Typeahead使用第一个字段的URL

时间:2019-09-24 12:11:31

标签: jquery typeahead.js

我有一个typeahead初始化函数,该函数获取我所有的typeahead字段,并应该根据数据URL值设置其远程URL。但是由于某种原因,它会将所有字段设置为第一个字段的url。如果我使用控制台手动销毁所有typeahead,然后分别定位第二个字段,则它仍使用第一个字段的url。

使用预输入0.9.3

function setTypeaheadFields() {
    $.each($("[data-autocomplete]"), function() {
        let input = $(this);
        input.typeahead("destroy");
        let resultField = input.data('inputfield');
        let sourceUrl = input.data('url');
        let minLength = input.data('minLength') || 3;
        console.log(sourceUrl);
        input.typeahead({
            valueKey: 'text',
            name: 'text',
            minLength: minLength,
            remote: {
                url: sourceUrl + '/%QUERY',
                filter: function(parsedResponse) {
                    return parsedResponse;
                },
            template: [
                "<p class='label'><strong>{{text}}</strong></p>"
            ].join(''),
                engine: Hogan
            }
        }).on('typeahead:selected typeahead:autocompleted', function(e, datum) {
            $(resultField).val(datum.id);
        }).on('typeahead:closed', function() {
            $(resultField).val('');
        });
    });
}

1 个答案:

答案 0 :(得分:0)

这是选项中的“名称”字段。我不知道设置预输入对象的名称。我所要做的就是以编程方式设置名称,而一切都变得笨拙。