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 に答える