【问题标题】:jQueryUI Datepicker in Dialog auto focus in IE9IE9中对话框中的jQueryUI Datepicker自动对焦
【发布时间】:2012-01-28 00:09:07
【问题描述】:

我能够在我尝试过的所有浏览器中加载和重新打开 jQueryUI 对话框,并使用 Datepicker 作为第一个元素......除了 IE 9。 如果 Datepicker 是对话框打开时第一个获得焦点的元素,则 Datepicker 将自动启动。我能够在 FireFox 和 Chrome 中抑制这种行为。 IE 9 在创建时仍会启动 Datepicker。

我对对话框的打开和关闭功能是:

open: function (event, ui) {
   $('#Date').blur();  // kill the focus
   if ($('#Date').hasClass('hasDatepicker')) {
        $("#Date").datepicker('enable');
   }
   else {
      $("#Date").datepicker();
   }
},
close: function (event, ui) {
    $("#Date").datepicker('disable');
}

这里是“点击”代码

var dialogs = {};
 $('#clicker').click(function (e) {
     if (!dialogs['dlg']) {
        loadAndShowDialog('dlg');
      } else {
         dialogs['dlg'].dialog('open');
      }
  });

var loadAndShowDialog = function (id) {
 dialogs[id] = $('#dlg').clone().find('#ChangeMe').attr('id', 'Date').end()
      .appendTo(document.body)
      .dialog({ // Create the jQuery UI dialog
          title: 'Testing',
          modal: true,
          resizable: true,
          draggable: true,
          width: 300,
          open: see above
          close: see above

        };

jsfiddle 显示这个 IE9 问题 http://jsfiddle.net/stocksp/DdRLp/8/

除了不将 Datepicker 作为第一个元素之外,我能做些什么来让 IE 正常运行?

【问题讨论】:

    标签: jquery-ui jquery-ui-dialog jquery-ui-datepicker


    【解决方案1】:

    我家里没有可用的 IE9,所以试试看:http://jsfiddle.net/DdRLp/10/

    我在日期选择器输入中添加了一个类,以便于抓取。

    $(function() {
    
    $(document).on("dialogcreate", "#dlg", function() {
        $(".date_picker").datepicker();
        $(".date_picker").datepicker("disable");
    });
    
    var dialogs = {};
    $('#clicker').click(function(e) {
        if (!dialogs['dlg']) {
            loadAndShowDialog('dlg');
        } else {
            dialogs['dlg'].dialog('open');
        }
    });
    var loadAndShowDialog = function(id) {
    
        dialogs[id] = $('#dlg').clone().find('#ChangeMe').attr('id', 'Date').end().appendTo(document.body).dialog({ // Create the jQuery UI dialog
            title: 'Testing',
            modal: true,
            resizable: true,
            draggable: true,
            width: 300,
            open: function(event, ui) {
                $("div#dlg form input").blur(); //takes focus off inputs 
                $(".date_picker").datepicker("enable");
            },
            close: function(event, ui) {
                $(".date_picker").datepicker("disable");
            }
        });
    
    };
    
    });
    

    【讨论】:

    • 好极了,比我在黑暗中刺伤好多了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    • 1970-01-01
    相关资源
    最近更新 更多