JavaScript-如何根据用户开始日期选择禁用未来日期?
我有以下代码:JavaScript-如何根据用户开始日期选择禁用未来日期?,javascript,jquery,Javascript,Jquery,我有以下代码: var today = new Date().toISOString().split('T')[0]; document.getElementsByName("StartDate")[0].setAttribute('min', today); $('#StartDate').change(function myfunction() { var endDate = new Date($('#StartDate').val()); $('#ReturnDate'
var today = new Date().toISOString().split('T')[0];
document.getElementsByName("StartDate")[0].setAttribute('min', today);
$('#StartDate').change(function myfunction() {
var endDate = new Date($('#StartDate').val());
$('#ReturnDate')[0].setAttribute('min', endDate);
})
我不想使用JQuery datepicker,而是使用html日期类型。
StartDate运行正常,但我想根据用户在StartDate中选择的内容禁用日期。例如,如果用户选择2015-08-01,则我希望在ReturnDate中禁用2015-08-02之前的所有日期。我尝试了这段代码,但仍然无法正常工作,有什么想法吗?如果您使用的是moment.js,我没有测试它,这是您可以做的。html数据类型的兼容性不是很好,您可以使用编写代码进行回退
type=text
$('#StartDate').on('change', function() {
var startDateStr = $(this).value()
var StartDateObj = new moment(startDateStr);
if($('#EndDate').length) {
var endDateStr = $('#EndDate').value();
var endDateObj = new moment(endDateStr);
}
// you should validate this value 1st, 1/2/15
// can be read as jan 2 2015, feb 1 2015 depend on the country
if(endDateObj.isAfter(StartDateObj)) {
return true;
} else {
alert('error');
}
})
您的代码有太多的问题,您正在混合使用Javascript和jQuery在jQuery对象上调用Javascript方法 希望您能仔细研究下面的代码,然后找出哪里出了问题以及原因
var today=new Date().toISOString().split('T')[0];
document.getElementById(“startDate”).setAttribute(“min”,今天);
$('#startDate')。在(“change”,function()上{
var endDate=新日期(this.value).toISOString().split('T')[0];
document.getElementById(“endDate”).setAttribute(“min”,endDate);
})
想试试moment.js吗?非常感谢。工作起来很有魅力!这里有一个遗漏,他需要startdate
+一天的enddate
字段min
属性。