我有一些在firefox和chrome中运行的脚本,但在IE 8中我收到此错误:
$.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 };` 特定错误读取:'0'为空或不是对象
我可以将行[0]更改为某些内容吗?这可以在jquery.autocomplete.js中找到,它在firefox中读取相同并且不会导致错误,因此我真的不想在可能的情况下更改此内容。
任何建议都会有所帮助!
答案 0 :(得分: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