在 jQuery 日期选择器中将 minDate 设置为动态日期
Set minDate to a dynamical date in jQuery datapicker
jQuery-UI 日期选择器中的最小日期设置 (minDate) 应设置为生日(我的代码中的 birthdateDMY)。我正在考虑在 .datepicker({}) 中使用匿名函数,但我不知道如何让它工作。
//birthdateDMY will be something like [ "01", "07", "2015" ]
var name = jQuery("#dropdown").val();
var index = baby.Name.indexOf(name);
var birthdateDMY = baby.BirthDate[index].split("/");
jQuery(function() {
jQuery("#datepicker").datepicker({
//need an anonymous function here to set minDate?
minDate: (new Date(birthdateDMY[2], birthdateDMY[1] - 1,
birthdateDMY[0])),
maxDate: 0,
dateFormat: "dd/mm/yy"
});
使用 SETTER 解决:
//Setter: update minDate for e.g. #datepicker
function updateMinDate(selector){
//birthdateDMY will be something like [ "01", "07", "2015" ]
var name = jQuery("#dropdown").val();
var index = baby.Name.indexOf(name);
var birthdateDMY = baby.BirthDate[index].split("/");
//Update minDate in the selected item
$(selector).datepicker("option", "minDate", new Date(birthdateDMY[2], birthdateDMY[1] - 1, birthdateDMY[0]) );
}
//When changin #dropdown, call updateMinDate
jQuery(document).on('change', '#dropdown', function(e) {
updateMinDate("#datepicker");
}
jQuery(function() {
jQuery("#datepicker").datepicker({
minDate: <some code run when page loads>,
maxDate: 0, numberOfMonths: 2, dateFormat: "dd/mm/yy"
});
});
只要您的下拉列表发生变化,您就需要重新初始化日期选择器。现在,当您的页面加载时,它会设置日期选择器,然后永远不会更改它。
因此,像这样的活动应该会有所帮助:
$("#dropdown").change(function(){
//reinitialize date-picker here
});
您可能需要稍微尝试一下,但我认为这会解决您的问题。
jQuery-UI 日期选择器中的最小日期设置 (minDate) 应设置为生日(我的代码中的 birthdateDMY)。我正在考虑在 .datepicker({}) 中使用匿名函数,但我不知道如何让它工作。
//birthdateDMY will be something like [ "01", "07", "2015" ]
var name = jQuery("#dropdown").val();
var index = baby.Name.indexOf(name);
var birthdateDMY = baby.BirthDate[index].split("/");
jQuery(function() {
jQuery("#datepicker").datepicker({
//need an anonymous function here to set minDate?
minDate: (new Date(birthdateDMY[2], birthdateDMY[1] - 1,
birthdateDMY[0])),
maxDate: 0,
dateFormat: "dd/mm/yy"
});
使用 SETTER 解决:
//Setter: update minDate for e.g. #datepicker
function updateMinDate(selector){
//birthdateDMY will be something like [ "01", "07", "2015" ]
var name = jQuery("#dropdown").val();
var index = baby.Name.indexOf(name);
var birthdateDMY = baby.BirthDate[index].split("/");
//Update minDate in the selected item
$(selector).datepicker("option", "minDate", new Date(birthdateDMY[2], birthdateDMY[1] - 1, birthdateDMY[0]) );
}
//When changin #dropdown, call updateMinDate
jQuery(document).on('change', '#dropdown', function(e) {
updateMinDate("#datepicker");
}
jQuery(function() {
jQuery("#datepicker").datepicker({
minDate: <some code run when page loads>,
maxDate: 0, numberOfMonths: 2, dateFormat: "dd/mm/yy"
});
});
只要您的下拉列表发生变化,您就需要重新初始化日期选择器。现在,当您的页面加载时,它会设置日期选择器,然后永远不会更改它。 因此,像这样的活动应该会有所帮助:
$("#dropdown").change(function(){
//reinitialize date-picker here
});
您可能需要稍微尝试一下,但我认为这会解决您的问题。