javascript - 模态窗口中的 JQuery 日期选择器问题

标签 javascript jquery jquery-ui jquery-ui-dialog jquery-ui-datepicker

我使用代码创建了一个模态表单/窗口:

    $(function () {
        var widthLen = window.screen.width - 10;
        var heightLen = window.screen.height - 120;
        $("#dialogOperation").dialog({
            width: widthLen,
            height: heightLen,
            closeOnEscape: true,
            modal: true,
            close: function () {
                window.location.href = "OperationMenu.aspx" 
            } 
        });
    });

带有一个文本框,其中附有日期选择器和按钮。一切正常,除了一个小问题——每次有回发时,日期选择器日历总是显示。在每个控制事件之后,日历都会出现。

我想要发生的是仅当我单击文本框时才显示日历,这在非模态对话框的表单中很常见。

当我尝试使用以下方法隐藏日期选择器时:

    $(document).ready(function () {
        $('#txtDate').datepicker('hide');
    });

我只是无法再显示日历,即使我在文本焦点上调用它也是如此:

    $("#txtDate").focus(function () {
        $('#txtDate').datepicker();
    }).blur(function() {
        $('#txtDate').datepicker('hide');
    });

我也试过将 z-index: 1003 放在 jquery css 中,但我还是不太走运。

.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; z-index: 1003; }

任何能帮我解决这个问题的人都将不胜感激。

提前致谢!

问候, 哈兰德

最佳答案

您可以使用选项 showOn http://docs.jquery.com/UI/Datepicker#option-showOn

或者先禁用日期选择器,然后使用对话框的open事件启用它。关闭对话框时禁用。

open: function(){
    $('#txtDate').datepicker('enable');

},
close: function() {
    $('#txtDate').datepicker('disable');
}

演示:http://jsfiddle.net/diode/Xawe2/

关于javascript - 模态窗口中的 JQuery 日期选择器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8954758/

相关文章:

javascript - 忽略使用 css 方法的 Jquery 链接

javascript - 选择框和 Firefox 上的模糊事件

Jquery虚拟键盘.keyboard不是一个函数

jquery ui 自动完成复杂搜索以及前后结果

javascript - 如何让 Firefox 自动在 JQuery UI 对话框中填写保存的密码?

javascript - 返回输入数组的最大元素的函数

javascript - AngularJS $http POST 转为 GET

javascript - 有条件地加载 vue-router

javascript - iCheck 和手动设置复选框以选中

javascript - 获取 jQuery UI 选项卡的 URI