我试图从jQueryUI中使用自动完成功能。我需要对后端进行数据调用,但除了request.term
的值以外,还有其他参数需要传递,因此,如果传递附加数据,而不是使用其他方法,则我想使用data-
属性做到这一点。jQuery自动完成+数据属性在结果中返回uiAutocomplete
var input = $(document.createElement("input"));
mydata.each(function() {
input.attr('data-'+this.nodeName, this.innerHTML);
});
所以当我建立我的<input>
我也把在里面data-
属性的早午餐,这个想法是,当我需要做的自动完成呼叫,我应该能够只是input.data()
抢我需要的一切。
但是,我从jQuery的.data()
调用中收到了一些奇怪的行为。
input.autocomplete({
source: function(req, resp) {
$.ajax({
url: $(this.element).attr('action'),
dataType : 'json',
data: $(this.element).data(),
cache : false
}).done(function(resp) {
console.log(resp);
}).fail(function() {
alert("failed");
});
},
...
在上面的代码,当我这样做$(this.element).data()
,它确实返回我所有的我定义的属性,但它也包括别的东西,比如uiAutocomplete
对象...
我想呼叫.data
应该只返回前缀为data-
的项目?获取data-
属性的最佳方法是什么?
我的问题是,'。数据()'将返回一个额外的对象'uiAutocomplete',它不应该是。我没有要求提供关于如何进行自动完成的示例。 – codenamezero