我正在尝试在表单上添加验证类型=“ month”字段,以便如果输入的日期不大于当前日期,它将发出警报。
到目前为止,iv设法使用onlcick
将函数链接到我的提交按钮,iv获得了一个获取当前日期并将其存储在另一个变量中的变量,并且iv尝试编写if / else语句,但是我相信逻辑不正确。
如果需要提供更多代码,我只会显示适用于我的问题的代码。
我的表单:
<div id="container">
<form method="post" action="www.someplace.php" id="MovieForm">
<div id="col-50">
<label for="expmonth">Expiry Date</label>
<input type="month" id="expmonth" name="expmonth">
</div>
<div id="col-50">
<button type="submit" onclick="return ValidateForm();" id="btn"><Strong>Proceed to checkout</Strong> </button>
</div>
</form>
我的JS函数:
<script>
function ValidateForm() {
var expValidate = document.getElementById("expmonth").value;
var today = new Date();
var date = today.getFullYear()+'-'+(today.getMonth()+1)
var isValid = false;
if (expValidate > today) {
isValid = true;
alert("correct month")
}
else {
alert("Wrong month")
return false;
}
}
因此,如果我要运行该代码并在当前代码上方输入一个日期,它将给我一个警告,提示“错误的月份”,然后将我返回到表单(即使它应该显示“正确的月份”,然后发送我进入下一页。
但是如果我运行代码并在当前日期下方输入一个月,也会发生同样的事情,它仍然会显示消息“错误的月份”,然后将我返回表格。
答案 0 :(得分:0)
尝试一下。应该可以使用日期输入类型来匹配日期。
<input type="date" id="expmonth" name="expmonth">
function ValidateForm() {
var date = new Date($('#expmonth').val());
console.log(date);
var today = new Date();
console.log(today);
if (date >= today) {
isValid = true;
alert("correct month")
} else {
alert("Wrong month")
return false;
}
}