jQuery:日期选择器开始在对话框中打开,仅在 IE 中

Posted

技术标签:

【中文标题】jQuery:日期选择器开始在对话框中打开,仅在 IE 中【英文标题】:jQuery: Date picker starts opened in dialog, only in IE 【发布时间】:2012-06-03 19:43:13 【问题描述】:

我在使用 jQuery 对话框时发现了一个有趣的错误,其中对话框中的第一个字段是日期选择器。在 IE 中打开对话框时,第一个字段的日期选择器会自动打开。这在其他浏览器中不会发生。有谁知道如何防止这种情况在 IE 中发生?

我尝试在document.ready 部分中添加.blur(),但没有成功。有没有其他人看到过这个问题?

我正在使用 MVC3 和 IE8

【问题讨论】:

【参考方案1】:

@ManseUK 的解决方案实际上存在问题;当对话框打开时,用户点击日期选择器的文本框,它不会第一次打开。此解决方案应该适用于所有预期的情况。

我不确定作者是谁,但我在CleanCode.co.nz找到了解决方案

html

<input type="button" value="Show Popup" id="button"/>
<div id="popup">
    <div>
        Date: <input type="text" id="datePicker3" >
    </div>
    <div>
        Name: <input type="text" id="UserName">
    </div>
</div>​

jQuery

$(document).ready(function() 
    $("#popup").dialog(
        autoOpen: false,
        resizable: false,
        height: 300,
        width: 400,
        modal: true,
        open: function() 
            $('#datePicker3').removeAttr("disabled");
        ,
        close: function () 
            $('#datePicker3').datepicker('hide');
        
    );

    $("#datePicker3").datepicker();

    $("#button").click(function() 
        $('#datePicker3').attr("disabled", true);

        $("#popup").dialog("open");
    );
);​

Working JSFiddle

*需要开启jQuery UI,点击运行

【讨论】:

完美。这在 IE 和 Chrome 中工作得很好。愚蠢的是它必须是这样,但从什么时候开始有 IE 错误消息?

以上是关于jQuery:日期选择器开始在对话框中打开,仅在 IE 中的主要内容,如果未能解决你的问题,请参考以下文章

如何在每次打开日期范围选择器对话框时显示警报?

在 JQuery UI 对话框中输入键行为

jQuery UI datepicker 在对话框中自动打开

为啥 jQuery UI 日期选择器在 jQuery 对话框模式中不起作用?

HTML5 日期选择器仅在第二次点击时打开

jQuery Dialog 和 Datepicker 插件的问题