2014-02-16 49 views
1

我有jQuery插件來驗證信用卡我要使用單獨的領域來驗證年份和月份我做了一年,但我不知道修復月份付款jQuery插件驗證日期一個月

$.payment.validateCardMonthExpiry = function(month) {   
    var currentTime, expiry, _ref; 
    if (typeof month === 'object' && 'month' in month) { 
     _ref = month, 
     month = _ref.month; 
    } 
    if (!(month)) { 
     return false; 
    } 
    month = $.trim(month); 
    if (!/^\d+$/.test(month)) { 
     return false; 
    } 
    if (!(parseInt(month, 10) <= 12)) { 
     return false; 
    } 
    expiry = new Date(month); 
    currentTime = new Date; 
    expiry.setMonth(expiry.getMonth() - 1); 
    expiry.setMonth(expiry.getMonth() + 1, 1); 
    return expiry > currentTime; 
}; 

,我已經

$('#month-holder').toggleClass('invalid', 
!$.payment.validateCardMonthExpiry($('#month-holder').val())); 

和我場不會驗證我的意思是永遠無效

<input type="text" name="month-holder" id="month-holder" 
class="input-txt width-65 cc-exp-mm" placeholder="MM" 
maxlength="2" pattern="\d*" x-autocompletetype="cc-exp-mm" required> 
+0

您可以創建http://jsfiddle.net/ –

+0

http://jsfiddle.net/4gP2m/6/這裏是鏈接,但有大量的代碼 –

+0

鏈接報錯404 –

回答

1
$.payment.validateCardMonthExpiry = function(month) { 
var currentTime, expiry; 
if (!month) { 
     return false; 
} 
onth = $.trim(month); 
if (!/^\d+$/.test(month)) { 
     return false; 
} 
if (!(parseInt(month, 10) <= 12)) { 
     return false; 
} 
expiry = new Date(month); 
    currentTime = (new Date).getMonth() + 1; 
    return expiry > currentTime; 
}; 

這個答案