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

时间:2012-05-29 14:54:32

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

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

我尝试在.blur()部分添加document.ready,但这不起作用。还有其他人看到过这个问题吗?

我正在使用MVC3和IE8

1 个答案:

答案 0 :(得分: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,然后单击“运行”