Javascript-如何将html日期限制为今天';谁的日期?
在我的Javascript-如何将html日期限制为今天';谁的日期?,javascript,html,date,Javascript,Html,Date,在我的html页面中有字段。我试图在javascript中创建一个函数,如果选择了比今天大的日期,该函数将在该字段中设置今天的日期。实际上,我想把最长日期限制在今天。这里是代码。我做错了什么 HTML: <div class="entry"> <label for="startDate">Start date:</label> <input id="startDate" name="startDate" type="date" oninp
html
页面中有
字段。我试图在javascript
中创建一个函数,如果选择了比今天大的日期,该函数将在该字段中设置今天的日期。实际上,我想把最长日期限制在今天。这里是代码。我做错了什么
HTML:
<div class="entry">
<label for="startDate">Start date:</label>
<input id="startDate" name="startDate" type="date" oninput="validDate(startDate)">
</div>
function validDate(date) {
todayDate = getTodaysDate();
if (date > todayDate)
document.searchForm["date"].value = todayDate;
}
function getTodaysDate(){
date = new Date();
day = date.getDate();
month = date.getMonth() + 1;
year = date.getFullYear();
if (month < 10) month = "0" + month;
if (day < 10) day = "0" + day;
today = year + "-" + month + "-" + day;
return today;
}
开始日期:
Javascript:
<div class="entry">
<label for="startDate">Start date:</label>
<input id="startDate" name="startDate" type="date" oninput="validDate(startDate)">
</div>
function validDate(date) {
todayDate = getTodaysDate();
if (date > todayDate)
document.searchForm["date"].value = todayDate;
}
function getTodaysDate(){
date = new Date();
day = date.getDate();
month = date.getMonth() + 1;
year = date.getFullYear();
if (month < 10) month = "0" + month;
if (day < 10) day = "0" + day;
today = year + "-" + month + "-" + day;
return today;
}
函数有效期(日期){
todayDate=GetTodayDate();
如果(日期>今天日期)
document.searchForm[“date”]。value=todayDate;
}
函数getTodaysDate(){
日期=新日期();
day=date.getDate();
月=日期。getMonth()+1;
年份=日期。getFullYear();
如果(月<10)月=“0”+月;
如果(天<10)天=“0”+天;
今天=年+“-”+月+“-”+日;
今天回来;
}
您可以设置属性,将其限制为今天的日期:
document.getElementById('startDate').setAttribute('max', getTodaysDate());
请参见您可以设置属性以将其限制为今天的日期:
document.getElementById('startDate').setAttribute('max', getTodaysDate());
请看这里有一个最新的小提琴,适合我(至少在Chrome/Windows中): JavaScript:
function validDate(date, theInput) {
var date = document.getElementById("startDate").value;
todayDate = getTodaysDate();
if (date > todayDate)
theInput.value = todayDate;
}
function getTodaysDate(){
date = new Date();
day = date.getDate();
month = date.getMonth() + 1;
year = date.getFullYear();
if (month < 10) month = "0" + month;
if (day < 10) day = "0" + day;
today = year + "-" + month + "-" + day;
return today;
}
函数有效期(日期、输入){
var date=document.getElementById(“startDate”).value;
todayDate=GetTodayDate();
如果(日期>今天日期)
Input.value=todayDate;
}
函数getTodaysDate(){
日期=新日期();
day=date.getDate();
月=日期。getMonth()+1;
年份=日期。getFullYear();
如果(月<10)月=“0”+月;
如果(天<10)天=“0”+天;
今天=年+“-”+月+“-”+日;
今天回来;
}
HTML:
开始日期:
这里有一个最新的小提琴,适合我(至少在Chrome/Windows中):
JavaScript:
function validDate(date, theInput) {
var date = document.getElementById("startDate").value;
todayDate = getTodaysDate();
if (date > todayDate)
theInput.value = todayDate;
}
function getTodaysDate(){
date = new Date();
day = date.getDate();
month = date.getMonth() + 1;
year = date.getFullYear();
if (month < 10) month = "0" + month;
if (day < 10) day = "0" + day;
today = year + "-" + month + "-" + day;
return today;
}
函数有效期(日期、输入){
var date=document.getElementById(“startDate”).value;
todayDate=GetTodayDate();
如果(日期>今天日期)
Input.value=todayDate;
}
函数getTodaysDate(){
日期=新日期();
day=date.getDate();
月=日期。getMonth()+1;
年份=日期。getFullYear();
如果(月<10)月=“0”+月;
如果(天<10)天=“0”+天;
今天=年+“-”+月+“-”+日;
今天回来;
}
HTML:
开始日期:
查看。不确定代码是否正确,但至少不会更改无效值。这需要onxxx=“return func()”
。查看。不确定代码是否正确,但至少onxxx=“func()”
不会更改无效值。这需要onxxx=“return func()”
。只有safari不支持它。这里只看到safari不支持它。看这里,它确实有效,是的。但在我看来,validDate(日期)
函数有点奇怪。您没有使用任何参数调用函数。我想对表单上的多个日期字段使用此函数,而不仅仅是startDate
;那是我的错误。我已经更新了我的答案(和小提琴),使代码更便于移植;你现在应该能够在不同的日期输入上使用它。它确实有效,是的。但在我看来,validDate(日期)
函数有点奇怪。您没有使用任何参数调用函数。我想对表单上的多个日期字段使用此函数,而不仅仅是startDate
;那是我的错误。我已经更新了我的答案(和小提琴),使代码更便于移植;您现在应该能够在不同的日期输入上使用它。