如果声明我试图阻止用户输入将来的日期,则以下函数不会验证是否在到达其他日期时继续跳过。
我有月和年的工作。然而,一天不起作用。用户也应该能够输入2016年3月4日但不能> 2016年3月5日
function fieldDateNotInFutureValidator(prefixPartDateInput){
if(event.type == "submit") {
console.log(event.type);
var selectedDay = $("#proof_of_address_form\\:input-"+prefixPartDateInput+"-day").val();
var selectedMonth = $("#proof_of_address_form\\:input-"+prefixPartDateInput+"-month").val();
var selectedYear = $("#proof_of_address_form\\:input-"+prefixPartDateInput+"-years").val();
var valid = false;
var today = new Date();
var currentDay = today.getDate().toString();
var currentMonth = today.getMonth() + 1;
var thisMonth = currentMonth.toString();
var currentYear = today.getFullYear().toString();
console.log(today,currentDay, thisMonth, currentYear);
if (selectedYear < currentYear) {
valid = true;
} else if (selectedYear == currentYear && selectedMonth <= thisMonth) {
valid = true;
} else if (selectedDay > currentDay) {
return false;
}
else {
valid = false;
}
return valid;
}
return true;
}
答案 0 :(得分:0)
您获得的年,月,日价值是多少?如果它们是数字(或数字字符串,如&#34; 2016&#34;,&#34; 3&#34;,&#34; 10&#34;),您可以创建日期,然后将其与当前日期进行比较通过创建今天的日期和零小时,例如
var d0= new Date(year, month-1, day);
// Ensure d0 is a valid date
if (!d0 || d0.getMonth() != month-1) {
// d0 was not a valid date
}
var d1 = new Date();
d1.setHours(0,0,0,0);
if (d0 > d1) {
//d0 is a future date;
}