获取元素触发jQuery-Ui自动完成小部件?

时间:2015-04-04 13:03:02

标签: jquery ajax jquery-ui autocomplete jquery-ui-autocomplete

我正在使用自动完成多个输入文本元素,我想根据触发事件的元素从不同函数获取数据,因为我在文本元素的数据属性中传递Web服务链接。我不想在页面中写出不同的自动完成3次。

HTML: -

<input class="autocomplete" name="firstname" link='getfirstname'/>
<input class="autocomplete" name="middlename" link='getmiddlename'/>
<input class="autocomplete" name="lastname"
link='getlastname'/>

Jquery: -

$('.autocomplete').autocomplete({
    source: function (request, response) {
        jQuery.get($(this).data('link'), {
                typedValue: request.term
            }, function (data) {
                response(data);
            }, 'json');
        },
        minLength: 1
})

Demo

我对How to get the input element triggering the jQuery autocomplete widget?进行了评价,但没有任何帮助。

1 个答案:

答案 0 :(得分:2)

而不是$(this).data你需要使用$(this.element).data JSFiddle

$('.autocomplete').autocomplete({
    source:function(request, callback){
        console.log($(this.element).data("link"));
        jQuery.get($(this.element).data('link'), {
                typedValue: request.term
            }, function (data) {
                response(data);
            }, 'json');
    },
    select: function(event, ui) {
        console.log(event.target.name);
        console.log($(this).prop('name'));
        console.log($(event.target).data("link"));
    }
})