我在自动完成功能中调用了一个javascript变量,并在文本框值的ajax中创建了url但是它显示为未定义。
function fetchRecords()
{
var searchStr=$("#tags").val();
var finalLink=urlformjavascriptvariable;
$.ajax({
url:finalLink,
type: 'GET',
dataType :'jsonp',
async: false,
crossDomain:true,
success: function(data) {
var resp = data.response;
var availableTags = "[";
for (i = 0; i <= 10; i++) {
if(resp.messages.message[i].subject.$ != undefined)
var postSub = resp.messages.message[i].subject.$;
if (i < 10) {
availableTags +="\"" +postSub + "\",";
}
else {
availableTags +="\""+ postSub+"\"";
}
}
availableTags += "]";
availableTags=eval(availableTags);
$("#tags").autocomplete({
source: availableTags,
});
}
});
}
</script>
<div class="ui-widget">
<input id="tags" class="input_width mgtop20" autocomplete="on" onKeyup="fetchRecords();" type="text" name="post_search" value="" placeholder="Search the Community for answers" /></div>
它显示变量undefined
答案 0 :(得分:2)
for (i = 0; i <= 10; i++) {
这是令人讨厌的代码行。 ajax调用将超过列表中的项目数。
将同一语句切换为
for (i = 0; i < resp.messages.message.length; i++) {
将解决问题。