2010-12-02 7 views
0

J'ai la JS suivant qui compare le numéro de carte de crédit longueur:Comparer les mauvais chiffres

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

J'ai inclus les valeurs de console.log() sur la 5e & 6e lignes. Pour une raison quelconque, il ne manque pas ...

mise à jour

provider[cardType].validLength est toujours soit '16,13' ou '16'

+0

peut vous fournir l'entrée de l'échantillon qui est en cours de validation? et pourquoi vous pensez qu'il devrait échouer – Matt

+0

L'exemple d'entrée est inclus dans le commentaire après console.log() – Webnet

+0

Qu'est-ce que '(ccLength

Répondre

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