获取触发 jQuery-Ui 自动完成小部件的元素?
Get element triggering the jQuery-Ui autocomplete widget?
我正在为多个输入文本元素使用自动完成,我想根据触发事件的元素从不同的函数获取数据,因为我在文本的数据属性中传递 Web 服务 link元素。我不想在页面中写 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
})
我审阅了 How to get the input element triggering the jQuery autocomplete widget? 但没有帮助。
您需要使用 $(this.element).data 而不是 $(this).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"));
}
})
我正在为多个输入文本元素使用自动完成,我想根据触发事件的元素从不同的函数获取数据,因为我在文本的数据属性中传递 Web 服务 link元素。我不想在页面中写 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
})
我审阅了 How to get the input element triggering the jQuery autocomplete widget? 但没有帮助。
您需要使用 $(this.element).data 而不是 $(this).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"));
}
})