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

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

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

我正在使用 MVC3 和 IE8

【问题讨论】:

    标签: jquery jquery-ui internet-explorer-8 datepicker jquery-dialog


    【解决方案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 错误消息?
    猜你喜欢
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    • 2020-01-14
    • 2019-07-10
    • 1970-01-01
    相关资源
    最近更新 更多