Javascript 如何在引导日期选择器中设置动态最大结束日期
我在我的网站上使用以下日期选择器选择开始和结束日期: 这些规则是:Javascript 如何在引导日期选择器中设置动态最大结束日期,javascript,jquery,twitter-bootstrap,datetime,datepicker,Javascript,Jquery,Twitter Bootstrap,Datetime,Datepicker,我在我的网站上使用以下日期选择器选择开始和结束日期: 这些规则是: 开始日期可以介于今天和+30天之间,不能超过 结束日期不能超过所选开始日期后1年 因此,当表单加载时,我将endDate选项设置为“+1y-1d”,这非常有效。但是,如果客户选择的开始日期为+30天,例如,我需要第二个字段上的endDate选项再次扩展到“当前开始日期+1y-1d” 我已经开始编写代码,但确实不确定如何实现: <script type="text/javascript"> $(funct
- 开始日期可以介于今天和+30天之间,不能超过
- 结束日期不能超过所选开始日期后1年
<script type="text/javascript">
$(function() {
$(".startdate").datepicker({
format: 'd MM yyyy',
startDate: '+0d',
endDate: '+30d',
autoclose: true,
startView: 0,
minViewMode: 0,
todayHighlight: true,
orientation: "top"
});
$(".enddate").datepicker({
format: 'd MM yyyy',
startDate: '+1d',
endDate: '+1y -1d',
autoclose: true,
startView: 0,
minViewMode: 0,
todayHighlight: true,
orientation: "top"
});
$("#startdate").change(function() {
var startdate = new Date ( $("#startdate").val() ) ;
//alert(startdate);
var newendatemaximum;
$(".enddate").datepicker({
endDate: ???????
});
});
});
</script>
您不必使用json来设置日期选择器选项。您可以直接设置它们。一旦有了要用作javascript日期的新的最大日期,您可以直接设置该选项:
$("#startdate").change(function() {
var newendatemaximum = new Date ( $("#startdate").val() ) ;
newendatemaximum.setYear(newendatemaximum.getFullYear() + 1);
$(".enddate").datepicker("option", "endDate", newendatemaximum);
});
请对您编写的代码进行解释。谢谢您的帮助。我试过你的代码(虽然在startdate上被替换为),但它不起作用。请参阅我在编辑原始问题时尝试的确切代码。警报与预期一致。但enddate字段保持在页面加载时设置的11月25日(+1y-1d)。无论我尝试什么开始日期。在我最后一次评论之后有什么想法吗?我肯定想把它修好?我现在唯一的想法是,不要像现在这样初始化它,而是使用
$(“.enddate”).datepicker(“option”,“enddate”,newendatemax)代码>行来初始化它。可能会像使用+y-d
“sticks”一样初始化它,并取代任何其他代码。这是可能的。
$("#startdate").change(function() {
var newendatemaximum = new Date ( $("#startdate").val() ) ;
newendatemaximum.setYear(newendatemaximum.getFullYear() + 1);
$(".enddate").datepicker("option", "endDate", newendatemaximum);
});