比较错误的数字

时间:2010-12-02 16:23:07

标签: javascript

我有以下JS比较信用卡号码长度:

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 false;
        } 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;
},

我在第5和第5版中包含了console.log()的值。第6行。出于某种原因,它不会失败......

更新

provider[cardType].validLength始终为'16,13''16'

1 个答案:

答案 0 :(得分:0)

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