2015-04-04 40 views
4

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

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?但无济于事。

回答

2

,而不是$(本)。数据需要使用$(this.element)。数据 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")); 
    } 
}) 
相关问题