2011-04-20 36 views
0

我使用jquery.autocomplete.js,和下面的JS:jQuery AutoComplete錯誤:「s未定義」。我該如何解決這個問題?

$("#Search").autocomplete("/uk/Search/AutoComplete", 
{ 
    dataType: 'json', 
    parse: function (data) { 
     var rows = new Array(); 
     for (var i = 0; i < data.length; i++) { 
      rows[i] = { data: data[i], value: data[i].Tag, result: data[i].Tag }; 
     } 
     return rows; 
    }, max: 20, 
    formatItem: function (row, i, max) { 
     return row.Tag; 
    }, 
    width: 300, 
    minChars: 4, 
    highlight: false, 
    multiple: false 
}); 

這一切工作正常,我可以看到,有一個服務器往返回事,我希望結果是data變量。

我的問題是,我可以看到在FireFox錯誤控制檯中有一個錯誤,指出s is undefined

它的失敗在以下方面:

$.Autocompleter.Cache = function(options) { 

    var data = {}; 
    var length = 0; 

    function matchSubset(s, sub) { 
     if (!options.matchCase) 
      s = s.toLowerCase(); // this is where it fails 
     var i = s.indexOf(sub); 
     if (options.matchContains == "word") { 
      i = s.toLowerCase().search("\\b" + sub.toLowerCase()); 
     } 
     if (i == -1) return false; 
     return i == 0 || options.matchContains; 
    }; 

爲什麼會變成這樣失敗?有什麼我可以解決它嗎?

+0

你在傳遞一個變量嗎? – 2011-04-20 11:07:07

+0

什麼是'Autocompleter.Cache'?它不是jQuery UI的一部分...... – 2011-04-20 11:07:16

+0

@Tim,我沒有用's'做任何事情。我不知道那個變量是什麼,我也沒有通過任何其他的方法 – DaveDev 2011-04-20 11:10:38

回答

0

大部分的時間...

當我得到消息「[某件事]是未定義」那是因爲我的JSON響應對象(S)中含有非法字符的JSON或JSON不格式正確...使對象返回爲未定義。

請張貼您的JSON,以便我們可以看得更遠。