0

firefox と chrome で動作するスクリプトがいくつかありますが、IE 8 では次のエラーが発生します。

$.Autocompleter.defaults = {
    inputClass: "ac_input",
    resultsClass: "ac_results",
    loadingClass: "ac_loading",
    minChars: 1,
    遅延: 400,
    マッチケース: false,
    matchSubset: 真、
    matchContains: false,
    キャッシュの長さ: 10、
    最大: 100,
    mustMatch: false,
    extraParams: {},
    selectFirst: 真、
// 次の行でエラーがスローされ、エラー メッセージを読み上げる
    formatItem: 関数 (行) { return 行 [0]; }、
    formatMatch: null,
    自動入力: false,
    幅: 0,
    複数: false,
    multipleSeparator: ", ",
    ハイライト:関数(値、用語){
        return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>] )(" + term.replace(/([\^\$()[]{} *.+\?\|\])/gi, "\$1") + ")(?![^<>] >)(?![^&;]+;)", "gi"), " $1 ");
    }、
    スクロール: 真、
    scrollHeight: 180
};
` 特定のエラーの読み取り: '0' は null またはオブジェクトではありません

行[0]を何かに変更できますか?これはjquery.autocomplete.jsにあり、firefoxでも同じように読み取られ、エラーは発生しないため、可能な限りこれを変更したくありません。

どんなアドバイスもありがとう!

4

1 に答える 1

1

これは私が行っていることです(基本的に私はformatItem関数を使用しましたが、それを取り出して、あなたがしたことを試しました、そしてそれは動作します。

function setSearchAutoComplete() {
    $("#txtContactSearch").autocomplete
   ("../DataFiles/MaintainMessages.ashx?what=GU",
       {
           //formatItem: formatItem,
           formatItem:function(row){return "<em>" + row[0] + "<em>";},
           selectFirst: true,
           minChars: 2,
           max: 50,
           cache: false
       }
   );
    $("#txtContactSearch").result(findValueCallback);
}

function findValueCallback(event, data, formatted) {
    $("#divSelectedContacts").append("<span id='C" + data[1] + "' class='selectedContact'>" + data[0] + "</span>");
}

function formatItem(row) {
    return "<em>" + row[0] + "<em>";
}

HTH

于 2010-04-14T18:30:29.190 に答える