【发布时间】:2014-10-16 07:41:43
【问题描述】:
我有一个 jQuery 自动完成功能,它工作得非常好,直到我用一个函数重写源代码。
奇怪的是,这两个函数都返回完全相同的数据,但是,当我向源添加 ajax 函数时,自动完成函数不再起作用。
工作代码:
$('#q').autocomplete({
source:'getklanten.php'
}).data( "ui-autocomplete" )._renderItem = function( ul, item ) {
return $( "<li>" )
.append( "<a>" + item.naam + "</a>" )
.appendTo( ul );
};
此代码在控制台中返回
GET http://myURL/getklanten.php?term=comp
[{"naam":"Company name","id":12345}]
自动完成功能按预期工作并返回结果。
无法使用变量函数的代码:
var dynamicVar = $('#zxc').prop('checked');
$('#zxc').change(function(){
dynamicVar = $('#zxc').prop('checked');
dynamicVar = $('#zxc').is(':checked');
console.log(dynamicVar);
});
$('#q').autocomplete({
//source:'getklanten.php'
source: function(request, response) {
$.ajax({
url: "getklanten.php",
data: {
term : request.term,
supplier : $('#zxc').is(':checked')
}
});
}
}).data( "ui-autocomplete" )._renderItem = function( ul, item ) {
return $( "<li>" )
.append( "<a>" + item.naam + "</a>" )
.appendTo( ul );
};
此代码在控制台中返回:
GET http://myURL/getklanten.php?term=comp&supplier=false
[{"naam":"Company name","id":12345}]
但是,这会破坏自动完成功能。没有任何错误。即使两个函数返回完全相同的数据.. 有人可以帮我解释一下,告诉我为什么会这样吗?
【问题讨论】:
-
我们能看到任何现场演示吗?
-
不需要demo,相信答案很清楚。
-
@ApulGupta 很遗憾没有,实时代码不公开,在 jsfiddle 中我无法调用外部 php 文件。
-
@Daedalus 如果您对如何解决此问题有任何想法,请随时添加您的答案。
标签: javascript jquery autocomplete