[英]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.