验证月份/年份大于当前日期

时间:2019-10-01 11:33:29

标签: javascript php html

我正在尝试在表单上添加验证类型=“ 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;
    }
}

因此,如果我要运行该代码并在当前代码上方输入一个日期,它将给我一个警告,提示“错误的月份”,然后将我返回到表单(即使它应该显示“正确的月份”,然后发送我进入下一页。

但是如果我运行代码并在当前日期下方输入一个月,也会发生同样的事情,它仍然会显示消息“错误的月份”,然后将我返回表格。

1 个答案:

答案 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;
    }
}