jQuery DatePicker:点击“今天”然后点击“完成”时,不会保留今天的日期
jQuery DatePicker: When clicking on Today and then Done, today's date is not preserved
使用日期选择器时,当我单击 "Today" 按钮时,日期选择器中会显示今天的日期。但是,当我单击 "Done" 按钮时,字段中不会显示今天的日期。目前,我必须实际点击日期(即今天 -> select 日期)。我更愿意点击今天 -> 完成。
如何单击日期字段,单击 "Today" 按钮,然后单击 "Done" 按钮并在日期字段中反映今天的日期?
更新:
以下是我正在试验的内容。请原谅混乱-我是 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 在评论中给出的示例非常相似的方法来修复它,它只需要稍微调整一下就可以让事件处理程序正常工作,并在 [=28= 之后立即关闭日期选择器停止它] 被点击:
$(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())
});
});
这里的工作示例:http://jsfiddle.net/5ornc4gv/12/
编辑
如果页面上有多个具有相同 "datepicker" CSS class 的日期选择器,上面的点击事件将更改所有日期选择器。
为防止这种情况,按如下方式更改单击事件处理程序:
$(document).on('click', "button.ui-datepicker-current", function() {
$.datepicker._curInst.input.datepicker('setDate', new Date())
});
归功于此答案: 正确使用方法。
使用日期选择器时,当我单击 "Today" 按钮时,日期选择器中会显示今天的日期。但是,当我单击 "Done" 按钮时,字段中不会显示今天的日期。目前,我必须实际点击日期(即今天 -> select 日期)。我更愿意点击今天 -> 完成。
如何单击日期字段,单击 "Today" 按钮,然后单击 "Done" 按钮并在日期字段中反映今天的日期?
更新:
以下是我正在试验的内容。请原谅混乱-我是 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 在评论中给出的示例非常相似的方法来修复它,它只需要稍微调整一下就可以让事件处理程序正常工作,并在 [=28= 之后立即关闭日期选择器停止它] 被点击:
$(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())
});
});
这里的工作示例:http://jsfiddle.net/5ornc4gv/12/
编辑
如果页面上有多个具有相同 "datepicker" CSS class 的日期选择器,上面的点击事件将更改所有日期选择器。
为防止这种情况,按如下方式更改单击事件处理程序:
$(document).on('click', "button.ui-datepicker-current", function() {
$.datepicker._curInst.input.datepicker('setDate', new Date())
});
归功于此答案: 正确使用方法。