繁体   English   中英

如何使用livevalidation验证信用卡有效期(2个字段)

[英]How do I validate a credit card exp date (2 fields) with livevalidation

在自定义PHP捐赠页面上使用http://livevalidation.com 我想使过去的信用卡有效期无效,但所有其他选择均有效。 我在月份和年份中使用了两个选择字段。

似乎应该使用validate.custom或validate.now函数完成此操作,但是在这些文档中没有很好的示例。 似乎无法让他们工作...

<select tabindex="4" id="exp_month" name="exp_month">
  <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 tabindex="5" id="exp_year" name="exp_year">
  <option value="11">2011</option>
  <option value="12">2012</option>
  <option value="13">2013</option>
  <option value="14">2014</option>
  <!-- etc -->
</select>

<script>
  var exp_year = new LiveValidation( "exp_year", { validMessage: " ", failureMessage: "Enter a valid exp date", onlyOnSubmit: true } );
  exp_year.add( Validate.Custom( 
  //  ????    
  );
</script> 

好的-我终于弄清楚了...在那儿使用了一点php并获取了month的当前值...

var exp_year = new LiveValidation( "exp_year", { validMessage: " ", failureMessage: "Enter a valid exp date", onlyOnSubmit: true } );
exp_year.add( Validate.Custom, { against: function(value){
    var currentyymm=<?php print date(ym) ?>;
    var expmo1=document.getElementById("exp_month").selectedIndex;
    var expmo2=document.getElementById("exp_month").options;
    if  (value+expmo2[expmo1].value >= currentyymm) { return true; }
    else { return false; }
}, failureMessage: "Enter a valid exp date" } ); 

如果您信任用户的系统时钟,则类似于:

var d = new Date();
var y0 = d.getFullYear();
var m0 = d.getMonth() + 1;
var y1 = document.getElementById('exp_year').value;
var m1 = document.getElementById('exp_month').value;

if (y0 == y1 && m0 < m1) {
  // selected date is in the past
}

否则,从服务器传递月份和年份(例如在隐藏的输入中),然后对它们进行测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM