2013-07-16 16 views
6

Wdrażam zdarzenie ajaxStart, aby pokazać modalne wyrażenie "ładowanie".ajaxStart anuluje autouzupełnianie jQuery

Ale, dużym problemem jest konflikt modalny z autouzupełnianiem jQuery, po prostu nie pokazuje listy wyników autouzupełniania.

Moja autouzupełnianie jest:

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

A ja obsługi zdarzeń Ajax z tym:

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

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

Jak mogę wyłączyć tę modal do autouzupełniania lub jakoś uniknąć tego problemu?

Odpowiedz

2

Jeśli wszystko, co używasz do wykonania, to wyświetlenie komunikatu "Ładowanie", polecam użycie innego podejścia do wyświetlenia tego komunikatu.

Okno jQueryUI() funkcja jest trochę przesadą tylko wyświetli komunikat "Loading", kiedy można zrobić coś takiego:

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

Jeśli ktoś znajdzie to (tak jak ja) i naprawdę chce wiedzieć, dlaczego to nie działa, to dlatego, że okno dialogowe zawsze bierze ostrość z pola tekstowego podczas korzystania z okna dialogowego ("otwarte").

+0

Dzięki za podpowiedź :) – rafuru

Powiązane problemy