我需要验证日期输入,使其介于(包括)2016年9月1日至2017年8月31日之间。从这个函数,我试图调用一个新函数来打印这个日期给用户。以下代码似乎有效,但调用(9/1/2016)的警报并且不使用Holiday()函数打印结果。
function validate()
{
var y= document.getElementById("userdate").value;
var x= new Date(y);
var minDate = new Date('09/01/2016');
var maxDate = new Date('08/31/2017');
if (x >= minDate && x <= maxDate ){
Holiday();
}
else{
alert('Date must be between 9/1/2016 and 8/31/2017');
}
}
function Holiday() {
var x = document.forms[0].elements[0].value;
var mydate = new Date(x);
txt += "The date that user entered is " + mydate + "<p>";
var day = mydate.getUTCDate();
var month = mydate.getMonth() + 1;
var year = mydate.getFullYear();
document.getElementById("display").innerHTML = "Fomatted date " + month + "/" + day + "/" + year;
}
答案 0 :(得分:0)
它似乎对我很好
function validate() {
//var y= document.getElementById("userdate").value; //COMMENTED OUT
var x = new Date('09/01/2016'); //DEFAULT TO
var minDate = new Date('09/01/2016');
var maxDate = new Date('08/31/2017');
debugger;
if (x >= minDate && x <= maxDate) {
Holiday(x); // PASS THE VALUE
} else {
alert('Date must be between 9/1/2016 and 8/31/2017');
}
}
function Holiday(theDate) { //RECIEVE THE VALUE
var mydate = theDate;
var day = mydate.getUTCDate();
var month = mydate.getMonth() + 1;
var year = mydate.getFullYear();
document.getElementById("display").innerHTML = "Fomatted date " + month + "/" + day + "/" + year;
}
我没有看到任何错误。它将其打印到屏幕上,没有警报。尽管我没有太大变化,但还是试一试。