我正在使用jquery auto complete
功能。但偶尔会出现 引用错误:IE
中的函数未定义 ,但在Chrome
中有效。
这是我的代码,它调用后端Java
函数。
jQuery('autocomplete').focus(function() {
var f = jQuery(this);
f.autocomplete({
minLength: 3,
source: function(request, response) {
var etype = jQuery("#type").val();
Util.getId(
function(data) {
if (!isUserSessionValid(data[0])) {
return;
}
response(exportRespToArray(data));
},
etype,
f.val(),
getLang()
);
}
});
});
Util.getId()
是一个后端java
函数,用于将数据返回。成功后,代码将检查用户会话是否仍然有效,如果不是,则将其转发到登录屏幕。
但有时IE会显示参考错误exportRespToArray is undefined
。这两个功能都在导入到jsp中的外部js文件中明确定义。自动完成功能通过document.ready
函数进行初始化。
这是旧代码,我不是jQuery专家。我猜想Util.getId()函数中的success
关键字是可选的吗?如果调用成功,为什么会出现参考错误only in IE
?
好的。做过一些研究,并且function(data)
是一个DWR callback
函数。我可能可以添加一个errorHandler
块来确定服务器是否返回了任何错误。
Util.getId(
etype,
f.val(),
getLang(), {
callback:function(data) {
if (!isUserSessionValid(data[0])) {
return; }
response(exportRespToArray(data));
},
errorHandler:function(message) {
alert("Error returned: " + message);
}
});