2013-07-16 16 views
6

"Yükleme" modunu göstermek için ajaxStart olayını uyguluyorum.ajaxStart, jQuery Otomatik Tamamlama'yı iptal eder

Ancak, büyük sorun, jQuery Otomatik Tamamlama ile bu kalıcı çakışmaları, yalnızca otomatik tamamlamada sonuçların listesini göstermiyor.

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

Ve bununla Ajax olayları hallediyorum:

Benim otomatik tamamlama olduğunu

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

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

ben bir şekilde otomatik tamamlanması için bu kalıcı devre dışı bırakabilir veya nasıl bu sorunu önlemek?

cevap

2

$().dialog() numaralı telefonu kullanıyorsanız, "Yükleme" mesajının gösterilmesi için başka bir yaklaşım kullanmanızı öneririm.

jQueryUI iletişim() fonksiyonu böyle bir şey yapabileceğini zaman biraz overkill sadece mesajı "Yükleme" göstermektir:

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

(Bunu yaptığım gibi) ve gerçekten bunun neden çalışmadığını bilmek isterse, iletişim kutusunun ("açık") iletişim kutusunu kullandığınızda, iletişim kutusunun her zaman metin kutusundan odaklanmasını istemesidir.

+0

Öneri için teşekkürler :) – rafuru

İlgili konular