jQuery DatePicker:当单击“今天”然后单击“完成”时,不会保留今天的日期

jQuery DatePicker:当单击“今天”然后单击“完成”时,不会保留今天的日期,jquery,asp.net,asp.net-mvc,datepicker,jquery-ui-datepicker,Jquery,Asp.net,Asp.net Mvc,Datepicker,Jquery Ui Datepicker,使用datepicker时,当我单击“今天”按钮时,今天的日期将显示在datepicker中。但是,当我单击“完成”按钮时,字段中不会显示今天的日期。目前,我必须实际点击日期,即今天->选择日期。我更喜欢点击今天->完成 如何单击日期字段,单击“今天”按钮,然后单击“完成”按钮,使今天的日期反映在日期字段中 更新: 下面是我正在做的实验。请原谅,我不熟悉jQuery/javascript $(document).ready(function () { $(".datePicker

使用datepicker时,当我单击“今天”按钮时,今天的日期将显示在datepicker中。但是,当我单击“完成”按钮时,字段中不会显示今天的日期。目前,我必须实际点击日期,即今天->选择日期。我更喜欢点击今天->完成

如何单击日期字段,单击“今天”按钮,然后单击“完成”按钮,使今天的日期反映在日期字段中

更新:

下面是我正在做的实验。请原谅,我不熟悉jQuery/javascript

$(document).ready(function () {
        $(".datePicker").datepicker({
            changeMonth: true,
            changeYear: true,
            dateFormat: "yy-mm-dd",
            yearRange: 2000:c+1,
            showButtonPanel: true,                       
            @*
               beforeShow: function (input, instance) {
                $(input).datepicker('setDate', new Date());
            }
            *@
        });

        $('.datePicker').click(function () {
            $('button.ui-datepicker-current').removeClass('ui-priority-secondary').addClass('ui-priority-primary');
        });            

        $(document).on('click', "button.ui-datepicker-current", function () {
            $(".datePicker").datepicker('setDate', new Date())
        });

        @* Set focus to the next datepicker. This allows the user to re-select the same date field.
           Otherwise, a user must click another date field in order to be able to re-select the date field.
        *@
        $("body").delegate("button[data-handler=today]", "click", function () {
            $("#Date").datepicker("setDate", new Date()).datepicker("hide");
            $("#RDate").focus();
        });

        @* This does not work, but provided for ideas.
        $(".datepicker").each(function () {
            $(this).datepicker('setDate', $(this).val());
        });
        *@
    });

您可以使用类似于Stephen在评论中给出的示例的方法来修复它,只需稍微调整事件处理程序即可正常工作,并在单击“今日”后立即关闭日期选择器即可停止:

$(document).ready(function() {
  $(".datePicker").datepicker({
    changeMonth: true,
    changeYear: true,
    dateFormat: "yy-mm-dd",
    yearRange: "2000:c+1",
    showButtonPanel: true
  });

  $(document).on('click', "button.ui-datepicker-current", function() {
    $(".datePicker").datepicker('setDate', new Date())
  });
});
此处的工作示例:

编辑

如果页面上有多个日期选择器使用相同的日期选择器CSS类,则上面的单击事件将更改所有日期选择器上的日期

要防止出现这种情况,请按如下方式更改click事件处理程序:

$(document).on('click', "button.ui-datepicker-current", function() {
  $.datepicker._curInst.input.datepicker('setDate', new Date())   
});

这个答案值得称赞:要使用正确的方法。

您可以使用类似于Stephen在评论中给出的示例的方法来修复它,只需稍微调整事件处理程序即可正常工作,并在单击“今天”后立即关闭日期选择器即可停止:

$(document).ready(function() {
  $(".datePicker").datepicker({
    changeMonth: true,
    changeYear: true,
    dateFormat: "yy-mm-dd",
    yearRange: "2000:c+1",
    showButtonPanel: true
  });

  $(document).on('click', "button.ui-datepicker-current", function() {
    $(".datePicker").datepicker('setDate', new Date())
  });
});
此处的工作示例:

编辑

如果页面上有多个日期选择器使用相同的日期选择器CSS类,则上面的单击事件将更改所有日期选择器上的日期

要防止出现这种情况,请按如下方式更改click事件处理程序:

$(document).on('click', "button.ui-datepicker-current", function() {
  $.datepicker._curInst.input.datepicker('setDate', new Date())   
});

这要归功于这个答案:使用正确的方法。

这不是按钮的行为,而是建议一个可能的解决方案。我看到了这一点,并能够使用该解决方案更改“今日”按钮的格式。但是,我无法获得今天->完成工作的功能。你能做到这一点并提供一把小提琴吗?这不是按钮的行为,而是建议一种可能的解决方案。我看到了这一点,并能够使用该解决方案更改“今日”按钮的格式。但是,我无法获得今天->完成工作的功能。你能做到这一点并提供小提琴吗?太好了!这是一个优雅的解决方案。非常感谢你。我向您致敬,先生。实际上,这不起作用,因为它会影响页面上的所有日期字段。有没有办法防止这种情况发生?@JWeezy做了一个编辑,建议你在这种情况下需要做什么。Will do-我今晚必须检查一下。再次感谢你的帮助。我知道这可能是一个无耻的插拔,但这个问题有没有可能值得一票?有有用答案的帖子不应该受到负面否决票的影响。这是有效的。我发布了另一个关于“今天”按钮如何呈现的问题。如果你能让它工作,那么很高兴标记它。杰出的这是一个优雅的解决方案。非常感谢你。我向您致敬,先生。实际上,这不起作用,因为它会影响页面上的所有日期字段。有没有办法防止这种情况发生?@JWeezy做了一个编辑,建议你在这种情况下需要做什么。Will do-我今晚必须检查一下。再次感谢你的帮助。我知道这可能是一个无耻的插拔,但这个问题有没有可能值得一票?有有用答案的帖子不应该受到负面否决票的影响。这是有效的。我发布了另一个关于“今天”按钮如何呈现的问题。如果你能让它工作,那么很高兴标记它。