Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如果格式不为';不包括白天_Jquery_Jquery Ui_Datepicker_Jquery Ui Datepicker - Fatal编程技术网

Jquery 如果格式不为';不包括白天

Jquery 如果格式不为';不包括白天,jquery,jquery-ui,datepicker,jquery-ui-datepicker,Jquery,Jquery Ui,Datepicker,Jquery Ui Datepicker,我注意到jQueryUIDatePicker中有一个意外的行为 每当我使用不包括日期的格式时,例如“MM yy”(2011年10月), 下次显示日期选择器时,它指向今天,而不是上一个日期 如果使用for格式,例如“dd/mm/yy”(2011年10月1日),则不会出现这种情况 我认为这实际上可能是一个bug,我将向jQueryUI社区报告它 无论如何,在此期间,我想知道您是否曾经遇到过这个问题,是否可以向我建议一个解决办法 编辑: 为了完整性:我将这个问题作为一个bug提交给jQueryUI社

我注意到jQueryUIDatePicker中有一个意外的行为

每当我使用不包括日期的格式时,例如“MM yy”(2011年10月), 下次显示日期选择器时,它指向今天,而不是上一个日期

如果使用for格式,例如“dd/mm/yy”(2011年10月1日),则不会出现这种情况

我认为这实际上可能是一个bug,我将向jQueryUI社区报告它

无论如何,在此期间,我想知道您是否曾经遇到过这个问题,是否可以向我建议一个解决办法

编辑:
为了完整性:我将这个问题作为一个bug提交给jQueryUI社区

我解决了你的问题。请签出此链接


只需将这一行添加到您的代码
$(“#monthDate1”).datepicker('选项','默认日期',新日期(年,月,1))在你的
$(“#monthDate1”)。专注于
功能。

我解决了你的问题。请签出此链接


只需将这一行添加到您的代码
$(“#monthDate1”).datepicker('选项','默认日期',新日期(年,月,1))$(“#monthDate1”)中的code>。关注
函数。

您标记为正确的答案实际上并不正确。让我把它分解一下

$("#monthDate1").focus(function () {
    $(".ui-datepicker-calendar").hide();
    //add event to perform on done button click
    $(".ui-datepicker-close").click(function(){
        var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
        var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
        $("#monthDate1").datepicker('option', 'defaultDate', new Date(year, month, 1));
        $("#monthDate1").datepicker('setDate', new Date(year, month, 1));
    });
});
通过执行
$(“#monthDate1”).focus
每次控件进入
focus
时,您都在等待
click
事件,这非常糟糕

考虑每次在
$(“.ui日期选择器关闭”)
上单击
时启动
$.ajax
。您的函数将从服务器请求的次数不是一次,而是您的控件进入
焦点的次数

修正:

不要在
$(“#monthDate1”)
上绑定
焦点
,而是使用
live
delegate
(对于jquery版本>=1.9.3,如果我没弄错的话)

下面是一个使用
live
的示例:

$(".ui-datepicker-close").live('click', function(){
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
            $("#monthDate1").datepicker('option', 'defaultDate', new Date(year, month, 1));
            $("#monthDate1").datepicker('setDate', new Date(year, month, 1));
        });
下面是一个带有
委托的示例:

$("#ui-datepicker-div").delegate(".ui-datepicker-close", 'click', function(){
    var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
    var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
    $("#monthDate1").datepicker('option', 'defaultDate', new Date(year, month, 1));
    $("#monthDate1").datepicker('setDate', new Date(year, month, 1));
});
更新

这次更新是针对我在评论中给出的回应。 用户
$(“.ui datepicker calendar”).hide()并不是很好
focus
事件中,因为它有点问题

以下是您应该如何毫无问题地做到这一点:

var dynamicStyle = $("<style> .ui-datepicker-calendar { display: none; } </style>")
                        .attr("id", "dynamicDatepickerStyle");
$("#monthDate1").datepicker({
    beforeShow: function ()
    {
        $("body").append(dynamicStyle);
    },

    onClose: function ()
    {
        $("#dynamicDatepickerStyle").remove();
    }
});
var dynamicStyle=$(“.ui日期选择器日历{display:none;}”)
.attr(“id”,“dynamicDatepickerStyle”);
$(“#monthDate1”)。日期选择器({
beforeShow:函数()
{
$(“正文”).append(dynamicStyle);
},
onClose:function()
{
$(“#dynamicDatepickerStyle”).remove();
}
});

这将附加
样式
,当
打开
日期选取器
时,它将
隐藏
日历
,当
日期选取器
关闭时,它将
删除
样式
,以免影响页面上的其他日期选取器。如果您希望在页面上有多个日期选择器,有些带有日历,有些没有日历。

标记为正确的答案实际上并不正确。让我把它分解一下

$("#monthDate1").focus(function () {
    $(".ui-datepicker-calendar").hide();
    //add event to perform on done button click
    $(".ui-datepicker-close").click(function(){
        var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
        var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
        $("#monthDate1").datepicker('option', 'defaultDate', new Date(year, month, 1));
        $("#monthDate1").datepicker('setDate', new Date(year, month, 1));
    });
});
通过执行
$(“#monthDate1”).focus
每次控件进入
focus
时,您都在等待
click
事件,这非常糟糕

考虑每次在
$(“.ui日期选择器关闭”)
上单击
时启动
$.ajax
。您的函数将从服务器请求的次数不是一次,而是您的控件进入
焦点的次数

修正:

不要在
$(“#monthDate1”)
上绑定
焦点
,而是使用
live
delegate
(对于jquery版本>=1.9.3,如果我没弄错的话)

下面是一个使用
live
的示例:

$(".ui-datepicker-close").live('click', function(){
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
            $("#monthDate1").datepicker('option', 'defaultDate', new Date(year, month, 1));
            $("#monthDate1").datepicker('setDate', new Date(year, month, 1));
        });
下面是一个带有
委托的示例:

$("#ui-datepicker-div").delegate(".ui-datepicker-close", 'click', function(){
    var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
    var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
    $("#monthDate1").datepicker('option', 'defaultDate', new Date(year, month, 1));
    $("#monthDate1").datepicker('setDate', new Date(year, month, 1));
});
更新

这次更新是针对我在评论中给出的回应。 用户
$(“.ui datepicker calendar”).hide()并不是很好
focus
事件中,因为它有点问题

以下是您应该如何毫无问题地做到这一点:

var dynamicStyle = $("<style> .ui-datepicker-calendar { display: none; } </style>")
                        .attr("id", "dynamicDatepickerStyle");
$("#monthDate1").datepicker({
    beforeShow: function ()
    {
        $("body").append(dynamicStyle);
    },

    onClose: function ()
    {
        $("#dynamicDatepickerStyle").remove();
    }
});
var dynamicStyle=$(“.ui日期选择器日历{display:none;}”)
.attr(“id”,“dynamicDatepickerStyle”);
$(“#monthDate1”)。日期选择器({
beforeShow:函数()
{
$(“正文”).append(dynamicStyle);
},
onClose:function()
{
$(“#dynamicDatepickerStyle”).remove();
}
});

这将附加
样式
,当
打开
日期选取器
时,它将
隐藏
日历
,当
日期选取器
关闭时,它将
删除
样式
,以免影响页面上的其他日期选取器。如果你想在页面上有几个日期选择器,有些有日历,有些没有日历。

非常感谢你,我想一定有办法完成。干得好+1并接受:)非常感谢你,然后是非常充分的,我想一定有办法完成它。干得好+1并接受:)感谢您的评论,我同意使用
live()
或更高版本的jQuery
on()
方法(+1)。我读到你不同意一起使用焦点。因此,如果您能提供一个有效的示例,我将不胜感激,因为我不知道您将如何隐藏
.ui日期选择器日历,这也是我的一个必须。您仍然可以保留
$(“.ui日期选择器日历”).hide()
focus
处理程序中,如果您只想让此日期选择器不显示日历,则需要执行此操作。或者您可以全局覆盖它,但请注意,这将影响加载它的站点中的所有日期选择器:
.ui datepicker calendar{display:none;}
,或者您可以只插入样式