3

リモートデータソースでJqueryオートコンプリートを使用していますが、データソースのような残りのWebサービスを使用しているため、サーバーで検索しようとするとエラーが返されることがあります。Web サービスによって返されたステータス コードを知り、エラー メッセージを出力したい 例:

$(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 );
        };
    }

たとえば、私の Web サービスがステータス コード 404 を返したとします。たとえば、このステータス コードを取得してアラート ウィンドウを呼び出したいとします。

それはすべての人々です!

4

1 に答える 1

5

関数をパラメーターとして使用するようにウィジェットを再構築し、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 );
    };
};
于 2012-04-24T13:31:08.833 に答える