2011-11-09 5 views
1

のクレジットカードの有効期限(2フィールド)を確認するには、カスタムPHP寄付ページでhttp://livevalidation.comを使用します。私は過去のクレジットカードの予定の日付を無効にしたいが、他のすべての選択は有効である。私は月と年の2つの選択フィールドを使用しています。ライブバリデーション

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> 
+0

"有効"の条件は何ですか? – RobG

+0

過去にはありません... – squarecandy

答えて

0

OK ...彼らは仕事を得るように見えることはできません - 私は最終的にそこにPHPのビットを使用して、月の現在の値をつかんで...それを考え出した...

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" }); 
0

あなたは、のようなもの、ユーザーのシステムクロックを信頼する場合:

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 
} 

をそれ以外の場合は、それらに対するサーバー(隠し入力で言う)とテストから月と年を渡します。