【发布时间】:2017-01-20 18:51:28
【问题描述】:
有人知道我如何触发日期选择器来触发它的 onClose() 函数,就像用户做出选择并点击了 完成 按钮一样?
也许我找错地方了,但我似乎找不到一种方法来触发一个模拟用户选择日期选择器并点击完成按钮的事件。
这是我的场景:我希望在用户选择选项按钮时更改日期。如果用户选择选项“YEAR”,则 #StartDate 更改为 2016 年 1 月,#EndDate 更改为 2016 年 12 月。如果用户选择选项“MONTH”,则 >#StartDate 更改为 2017 年 1 月,#EndDate 更改为 2017 年 1 月。
max 和 min 以及 other 要求 在 initModule 中为两个仅执行的日期选择器处理当用户选择日期选择器、更改这些日期并单击完成按钮时。我想在无需用户手动更改日期的情况下触发这些事件。
在我的 initModule 方法中:
// ----------------Begin Public Methods----------------------------//
var initModule = function () {
var currYear = new Date().getFullYear();
// Hookup datepickers
$(#EndDate).datepicker({
changeMonth: true,
changeYear: true,
showButtonPanel: true,
dateFormat: 'MM yy',
minDate: new Date(2013, 9, 1),
maxDate: '-1d',
beforeShow: function () {
setTimeout(function () {
$("#ui-datepicker-div").addClass('calendar-off');
}, 0);
},
onClose: function () {
var month = $(#ui-datepicker-div .ui-datepicker-month :selected").val();
var year = $(#ui-datepicker-div .ui-datepicker-year :selected").val();
$(this).datepicker('setDate' new Date(year, month, 1));
onChangeEndDate();
}
});
.
.
.
.
.
};
return { initModule: initModule };
所以,我尝试了$("#EndDate").click('onClose'); 和$("#EndDate").trigger('onClose');,但我到处寻找答案却无济于事。
如何在 onClose: 函数 () 中执行,而无需用户手动更改日期选择器中的日期并选择 完成 按钮?
【问题讨论】:
-
你不会只是将日期输入值设置为你想要的值吗?并触发您想要的事件? DatePicker 只是一个用于设置日期输入值的图形工具。您不需要与它进行交互。
-
我需要触发 onClose 函数来根据需要设置最小值和最大值。我已经尝试按照您的建议设置值,但日期选择器与我打架。必须有一种方法可以像用户那样触发日期选择器。没有吗?
标签: javascript jquery datepicker