1

我在自动完成函数中调用了一个 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>

它显示未定义的变量

4

1 回答 1

2
for (i = 0; i <= 10; i++) {

这是有问题的代码行。ajax 调用超出了列表中的项目数。

将相同的语句切换到

for (i = 0; i < resp.messages.message.length; i++) {

将解决问题。

于 2013-12-12T18:29:42.197 回答