删除微调器/加载图像以查看自动完成中的错误

时间:2012-02-13 13:51:41

标签: jquery-ui jquery autocomplete

如果自动完成功能适用于错误/失败案例,您能否帮我解决如何删除微调器/加载图像的问题?

如果我收到错误“由于意外错误,我们无法加载数据”我看到加载图像,我想删除该图像。

以下是摘录

  $("Autotxt").autocomplete({
    source: function (request, response) {
        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "Webservice.asmx/GetNames",
            data: "{'prefixText':'" + request.term + "'}",
            dataType: "json",  
            success: function (data) {
                response($.map(data.d, function (item) {

                    return {
                        label: item.split('|')[0],
                        val: item.split('|')[1]
                    }
                }))
            },

            error: function (result) {

                alert("Due to unexpected errors we were unable to load data");
                ServiceFailed(result);
            },
            failure: function (response) {
                alert("Due to unexpected errors we were unable to load data");

            }
        });
    },
    select: function (event, ui) {
        txtSoID(ui.item.val);
    },
    minLength: 4
});


function txtID(val)
{
alert(val)
}

4 个答案:

答案 0 :(得分:3)

如果您指的是通过ui提供的加载类,您应该能够执行以下操作:

 error: function (result) {
     $('.ui-autocomplete-loading').removeClass("ui-autocomplete-loading");
     // or .hide()
     alert("Due to unexpected errors we were unable to load data");
     ServiceFailed(result);
 },

我在页面底部的jqueryUI development site找到了关于css和主题的课程信息。

答案 1 :(得分:2)

我在代码中看不到任何加载屏幕。但你可以简单地添加函数

var removeSpinner = function() {
    $("yourloader").hide();
}

并在您的失败或错误回调中调用它,如

   error: function (result) {
        removeSpinner();
        alert("Due to unexpected errors we were unable to load data");
        ServiceFailed(result);
    }

答案 2 :(得分:0)

对这些图像执行检查元素,检查他们的类(例如'loader'),然后将其放入错误和失败回调$(".loader").hide()中。

答案 3 :(得分:0)

根据我的回答改编,在搜索完成后添加以下代码(即使结果为0):

var __response = $.ui.autocomplete.prototype._response;
$.ui.autocomplete.prototype._response = function(content) {
    __response.apply(this, [content]);
    this.element.trigger("autocompletesearchcomplete", [content]);
};

该代码将触发一个事件(autocompletesearchcomplete),然后您可以将其绑定到:

$("#q").bind("autocompletesearchcomplete", function(event, contents) {
    /* Remove spinner here */
});

希望这有帮助...