показ jquery UI Dialog в фокусе не будет фокусировать элемент - PullRequest
0 голосов
/ 11 ноября 2011

Я хочу отобразить диалоговое окно jquery UI, когда пользователь фокусируется на определенном поле ввода.Это работает, проблема в том, что поле ввода не получит фокус после закрытия диалогового окна, то есть пользователь щелкает в поле ввода, диалоговое окно открывается.Пользователь закрывает диалоговое окно -> поле ввода не имеет фокуса.

Единственный способ фактически сфокусировать поле ввода - это нажать на него во второй раз, когда диалоговое окно уже отображается.Это довольно раздражает.я хотел бы, чтобы окно ввода имело фокус после закрытия диалогового окна.

$(function() {
    $( "#identifiersDialog" ).dialog({autoOpen: false});
});        
$('#identifiers').focus(function(event) {
     $( "#identifiersDialog" ).dialog('open');           
});

Ответы [ 2 ]

2 голосов
/ 11 ноября 2011

Вы можете использовать

$(function(){
    InitiliseInput();    
});
function InitiliseInput(){
    $('#identifiers').bind('focus', function() {
        $('#identifiersDialog').dialog({ close: function() { 
            $('#identifiers').unbind('focus').focus().blur(function(){ InitiliseInput()});              
        }});
    }); 
}

Рабочий пример здесь http://jsfiddle.net/RCBQs/1/

Функция blur затем сбрасывает диалоговое окно, как только фокус переместился от входа, так что перефокусировка снова открывает диалоговое окно.

0 голосов
/ 11 ноября 2011

Это должно помочь.

$(function() {
    $( "#identifiersDialog" ).dialog({autoOpen: false, close: function() { $('#identifiers').focus()  }});
});        
$('#identifiers').focus(function(event) {
     $( "#identifiersDialog" ).dialog('open');           
});
...