我需要一段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
答案 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>