繁体   English   中英

ajaxStart取消jQuery自动完成

[英]ajaxStart cancels jQuery Autocomplete

我正在实现ajaxStart事件以显示模式说“加载”。

但是,最大的问题是这种模式与jQuery自动完成冲突,只是没有显示自动完成的结果列表。

我的自动填充功能是:

$("#txtInput").autocomplete({
    minLength: 3,
    source: "autocomplete" , 
    multiple: true,
    select: function( event, ui ) {
        $( "#cie" ).val( ui.item.label );
        $("#id").val(ui.item.id);
        $("#addItem").prop('disabled', false);
        return false;
    }
});

我用这个处理Ajax事件:

$("#dlgWait").ajaxStart(function(){                    
    $("#dlgWait").dialog('open');    
});

$("#dlgWait").ajaxComplete(function(){
    $("#dlgWait").dialog('close');    
});

如何禁用此模式以进行自动完成或以某种方式避免此问题?

如果您只是使用$().dialog()来显示一条消息“正在加载”,我建议使用另一种方法来显示该消息。

当你可以做这样的事情时,jQueryUI dialog()函数有点过分只是为了显示消息“正在加载”:

HTML

<div class="dlgLoading" id="dlgWait">Loading...</div>

CSS

div.dlgLoading {
    position: absolute;
    top: 0px;
    bottom: 0px;
    left: 0px;
    right: 0px;
    background-color:rgba(255,255,255,0.95);
    text-align: center;
    display: none;
    z-index: 100;
}

JS

$('#ajax').ajaxStart(function(){
    $('#dlgWait').show();
});
$('#ajax').ajaxComplete(function(){
    $('#dlgWait').hide();
});

如果有人发现这个(就像我做的那样),并且真的想知道为什么这不起作用,那是因为当你使用对话框(“打开”)时,对话框总是将焦点从文本框中移开。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM