jQuery自动完成功能导致引用错误

时间:2018-09-14 15:42:48

标签: javascript java jquery jquery-ui

我正在使用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); 
                    }
                });

0 个答案:

没有答案