开发者

Comparing numbers wrong

I have the following JS which compares credit card number length:

validate: function () {
    var ccLength = $('.credit-card input[name="cc_number"]').val().length;
    var cardType = parseInt($('.credit-card .credit-card-type .selected').attr('rel'));
    if (!isNaN(cardType)) {
        console.log(ccLength); //11
        console.log(provider[cardType].validLength.split(',')); // ["16", "13"]

        if (ccLength == 0 || (cardType > 0 && (ccLength < parseInt(provider[cardType].validLength)) || (!$.inArray(ccLength, provider[cardType].validLength.split(','))))) {
            triggerNotification('x', 'Your credit card number isn\'t long enough');
            return fa开发者_开发问答lse;
        } else {
            if ($('.credit-card input[name="cc_cvv"]').val().length < 3) {
                triggerNotification('x', 'You must provide a CCV');
                return false;
            }
        }
    } else {
        triggerNotification('x', 'Credit card type is not recognized or accepted');
        return false;
    }
    return true;
},

I've included the values of console.log() on the 5th & 6th lines. For some reason, it doesn't fail...

update

provider[cardType].validLength is always either '16,13' or '16'


$.inArray( 16, ['16'] ); //=>-1
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜