我想做的是验证三个不同的输入。如果在月份中我输入2月的02,那么在一天中我不能输入29,因为该月份没有29,与其他只有30的月份相同。
只有并且可以验证该月份的输入不能超过12个月
<input type="number" id="month" class="form-control" min="1" max="12" oninput="(!validity.rangeOverflow||(value=12)) && (!validity.rangeUnderflow||(value=0)) &&(!validity.stepMismatch||(value=parseInt(this.value)));" placeholder="Month" required>
我希望在2月放的月份中不要让我放超过28的数字,如果在4月放的月份中不要让我放超过30的东西
答案 0 :(得分:1)
在输入控件的更改事件上调用此函数
<input id="day" type = "text" onchange= "isValidDate();" onkeypress= "this.onchange();" onpaste= "this.onchange();" oninput = "this.onchange();"/>
<input id="month" type = "text" onchange= "isValidDate();" onkeypress= "this.onchange();" onpaste= "this.onchange();" oninput = "this.onchange();"/>
<input id="year" type = "text" onchange= "isValidDate();" onkeypress= "this.onchange();" onpaste= "this.onchange();" oninput = "this.onchange();"/>
function isValidDate() {
var day = Number(document.getElementById("day").value);
var month = Number(document.getElementById("month").value);
var year = Number(document.getElementById("year").value);
var date = new Date();
date.setFullYear(year, month - 1, day);
// month - 1 since the month index is 0-based (0 = January)
if ( (date.getFullYear() == year) && (date.getMonth() == month + 1) && (date.getDate() == day) )
return true;
return false;
}