【问题标题】:JQuery UI Dialog: Called in focus event but element not focused after closing dialogJQuery UI 对话框:在焦点事件中调用,但在关闭对话框后元素未聚焦
【发布时间】:2015-10-21 22:36:51
【问题描述】:

见标题。我在 Input 元素的焦点事件中向用户显示了一个 Jquery UI 模式对话框。当对话框关闭时,我希望该输入成为焦点。这不会发生。似乎在焦点事件中调用对话框会阻止焦点发生。

当用户必须从多个值中进行选择时,将显示该对话框。这些值是通过 ajax 使用来自不同输入字段的参数获取的。如果仅返回 1 个值(或没有),则不会出现对话框并且输入元素正确聚焦。所以问题显然是由于对话造成的。

$("#myInput").focus(function() {
    //... get data, show dialog if multiple values in result
    $("#dialog").dialog( "open" );
}); 

$( "#dialog" ).dialog({
        autoOpen: false,
        buttons: { "Ok": function() { $(this).dialog("close")}},
        height: 120,
        width: 185,
        position: [285,200],
        modal: true,
        close: function(event, ui) {
            $('#myInput').val($("#select").val()); // Select element in dialog
        }
});

我该如何解决这个问题?

【问题讨论】:

    标签: focus jquery-ui-dialog


    【解决方案1】:

    对话框关闭时再次聚焦输入:

    $('#myInput').val($("#select").val()).focus(); 
    
     $( "#dialog" ).dialog({
        autoOpen: false,
        buttons: { "Ok": function() { $(this).dialog("close")}},
        height: 120,
        width: 185,
        position: [285,200],
        modal: true,
        close: function(event, ui) {
            $('#myInput').val($("#select").val()).focus(); 
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-20
      • 2010-10-20
      • 1970-01-01
      • 2011-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多