信用卡日期验证MM / YYYY格式

时间:2016-06-09 06:52:41

标签: javascript validation date

我需要一段JavaScript的帮助,我正在尝试制作一个日期验证脚本,它不会允许任何超过某个日期的内容,这是我到目前为止所拥有的;

这是客户可以选择信用卡到期日期的地方

Expiry MM/YYYY
<select id="expiry" name='expiry'>
<option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
/
<select id="expiry" name='expiry'>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
<option value="2021">2021</option>
<option value="2022">2022</option>
</p>
</select>

这是我的if / else语句让它过去或阻止它

function validateForm()
{
var currentDate = new Date();
var month = currentDate.getMonth(5)+1;
var year = currentDate.getFullYear(2016);
if (expiry < currentDate)
{
    alert("The date is not valid");
    expiry.focus();
    return false;
}

alert("Thank you for your order");
return true;
}

目前,即使日期已经过了今天的日期,它也会过去,如果你能提供帮助,谢谢。

非常有责任

-Traigh Warren

4 个答案:

答案 0 :(得分:-1)

if(expirydate.getTime()<currentDate .getTime())
{
    alert("The date is not valid");

}

通过将日期转换为时间来比较日期。

答案 1 :(得分:-1)

这是完整的代码 -

<script type='text/javascript' src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-rc1/jquery.min.js'></script>
<select id="expiry_1" name='expiry_1' >
<option value="">Select Month</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
/
<select id="expiry_2" name='expiry_2'>
<option value="">Select Year</option>
<option value="2016">2016</option>
<option value="2017">2017</option>
<option value="2018">2018</option>
<option value="2019">2019</option>
<option value="2020">2020</option>
<option value="2021">2021</option>
<option value="2022">2022</option>
</p>
</select>


<script>
function validateForm()
{
    var expiry_1 =  $('#expiry_1').val();
    var expiry_2 =  $('#expiry_2').val();

    if(expiry_1!=""&&expiry_2!=""){
         var currentDate = new Date();
        var cur_time = currentDate.getTime();

        var expire_date =  expiry_1+"/01/"+expiry_2; // i am assuming i will check from the start of the month
        var expire_dateObject = new Date(expire_date);
        var expiry_time = expire_dateObject.getTime();
        if (expiry_time < cur_time)
        {
            alert("The date is not valid");
            $('#expiry_1').focus();
            return false;
        }

        alert("Thank you for your order");
        return true; 
    }

}

$(function(){

    $('#expiry_1').change(function(){

        validateForm();

    });

     $('#expiry_2').change(function(){

        validateForm();

    });
})
</script>

答案 2 :(得分:-1)

底部有一个工作示例的链接。

您没有获得所选下拉菜单的值,并且您的比较结果已关闭。您还有两个到期ID。这应该使您的代码更具可读性。

window.validateForm = function() {
  var currentDate = new Date();
  var currentMonth = currentDate.getMonth(5)+1;
  var currentYear = currentDate.getFullYear(2016);

  var expireMonth = parseInt(monthExpiry.value);
  var expireYear  = parseInt(yearExpiry.value);

    if ( (currentYear >= expireYear) && (currentMonth > expireMonth) ) {
    alert("The date is not valid");
    return false;
    }

    alert("Thank you for your order");
    return true;
}

这是一个工作的例子 https://jsfiddle.net/urxdvtcu/2/
如果这是您想要的答案,请按绿色勾号。

答案 3 :(得分:-1)

试试这段代码......

        <script type="text/javascript">
        function checkDate() {
        var EnteredDate = document.getElementById("txtdate").value; 


        var month = EnteredDate.substring(5, 7);
        var day = EnteredDate.substring(8, 10);
        var year = EnteredDate.substring(0, 4);

        var today = new Date();

        if (day < today.getUTCDate() || month < today.getUTCMonth()+1 || year < today.getUTCFullYear()) {
            alert("Entered date is past! ");

        }
        else {
            alert("Entered date is Future ");

        }
    }
    </script>