2010-04-14 4 views
0

J'ai un script qui fonctionne dans Firefox et Chrome, mais dans IE 8 j'obtenir cette erreur: JQuery autocomplétion ne fonctionne pas correctement dans IE8

 
$.Autocompleter.defaults = { 
    inputClass: "ac_input", 
    resultsClass: "ac_results", 
    loadingClass: "ac_loading", 
    minChars: 1, 
    delay: 400, 
    matchCase: false, 
    matchSubset: true, 
    matchContains: false, 
    cacheLength: 10, 
    max: 100, 
    mustMatch: false, 
    extraParams: {}, 
    selectFirst: true, 
//the following line throws the error, read down for error message 
    formatItem: function(row) { return row[0]; }, 
    formatMatch: null, 
    autoFill: false, 
    width: 0, 
    multiple: false, 
    multipleSeparator: ", ", 
    highlight: function(value, term) { 
     return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>])(" + term.replace(/([\^\$()[]{}*.+\?\|\])/gi, "\$1") + ")(?![^<>]>)(?![^&;]+;)", "gi"), "$1"); 
    }, 
    scroll: true, 
    scrollHeight: 180 
}; 
` l'erreur spécifique se lit comme suit: « 0 » est nul ou non un objet

puis-je changer la ligne [0] en quelque chose? Cela se trouve dans jquery.autocomplete.js et il lit la même chose dans firefox et ne provoque pas l'erreur, donc je ne veux pas vraiment changer cela si possible.

un conseil aiderait merci!

Répondre

1

C'est ce que je fais (en gros je fonction formatItem mais a pris cela et essayé ce que vous avez fait et il fonctionne.

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

Questions connexes