在Jquery自动完成远程数据源中获取事件错误

时间:2012-04-24 13:28:25

标签: jquery jquery-ui error-handling jquery-ui-autocomplete

我正在使用带有远程数据源的Jquery自动填充,但是,有时当我尝试在我的服务器中搜索时会返回错误,因为我正在使用像数据源这样的其他Web服务。 我想知道我的webservice返回的状态代码是什么,并打印错误消息 例如:

$(idObjeto).autocomplete({
            source:url,
            minLength: 3,
            select:function(data,ui){
                $(formatIdJQuery(idObjValueReceptor)).val(ui.item.id);
            }
        }).data( "autocomplete" )._renderItem = function( ul, item ) {
        return $( "<li></li>" )
            .data( "item.autocomplete", item )
            .append( "<a>" + item.label + " - <strong>" + item.id + "</strong></a>" )
            .appendTo( ul );
        };
    }

假设我的webservice返回状态代码404,我想获取此状态代码并调用警报窗口,例如。

这就是所有人!

1 个答案:

答案 0 :(得分:4)

您可以重新构建窗口小部件以使用函数作为source参数,然后自己制作AJAX请求并在出错时执行任何操作:

$(idObjeto).autocomplete({
    source: function (request, response) {
        $.ajax({
            url: url,
            dataType: "json",
            data: request,
            success: function (data) {
                response(data);
            },
            error: function () {
                response([]); // send no results to the widget.
                alert("an error occurred!");
            }
        });
    },
    minLength: 3,
    select:function(data,ui){
        $(formatIdJQuery(idObjValueReceptor)).val(ui.item.id);
    }
}).data( "autocomplete" )._renderItem = function( ul, item ) {
    return $( "<li></li>" )
        .data( "item.autocomplete", item )
        .append( "<a>" + item.label + " - <strong>" + item.id + "</strong></a>" )
        .appendTo( ul );
    };
};