在焦点上显示jquery UI对话框不会聚焦元素

时间:2011-11-11 11:45:17

标签: jquery-ui focus jquery-dialog

我想在用户聚焦某个输入框时显示一个jquery UI对话框。问题是,关闭对话框后输入框不会得到焦点,这意味着用户点击进入输入框,打开对话框。用户关闭对话框 - >输入框没有焦点。

实际聚焦输入框的唯一方法是在对话框已经显示时再次点击它。这很烦人。我希望输入框在关闭对话框后有焦点。

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

2 个答案:

答案 0 :(得分:2)

您可以使用

$(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功能就会重置对话框,以便重新对焦再次打开对话框。

答案 1 :(得分:-1)

这应该有所帮助。

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