信用卡检查器似乎不起作用

时间:2016-09-27 02:51:33

标签: javascript html credit-card

我之前在其他文件上有过信用卡号码检查器。我把它复制到我的这个新项目中。但现在它似乎没有给我一个警报,如果它是正确的。 我不确定这个的原因,因为我已经从几个工作项目中复制并粘贴了更改HTML和一些JS以试图让它工作。

我想要做的是输入CC编号并按下“提交”按钮。它将检查输入的签证信用卡号是否通过Luhn支票。

当代码运行时,我没有收到任何错误消息。它只是通过'提交'。我输入了一个数字,一个正确的数字,或一个不正确的数字

这是它的HTML。

<!-- Start of Paymant Form -->
        <fieldset>
            <legend>
                Credit Card Payments
            </legend>
            <label>
            Credit Card<span class="red">*</span>
                <select id="creditCardType" name="creditCard">
                    <option value="visa">Visa</option>
                    <option value="masterCard">Master Card</option>
                </select>
            </label>
            <label>
                Cardholder Name<span class="red">*</span> <input type="text" value="" />
            </label>
            <label>
                Card Number<span class="red">*</span> <input type="text" value=""  id="ccNum"/>
            </label>
        </fieldset
<!-- End of Payment Form -->
<!-- Start of Submit/Reset Form -->

        <fieldset>
                <input type="submit" value="Submit" >
                <input type="reset" value="Reset">
        </fieldset>

这是我的JavaScript

function main() {
    "use strict"
        document.getElementById("ccNum").addEventListener("change", function() {creditCardChecker(readFromInputArea("ccNum"));});
}
function creditCardChecker(ccNum) {
    "use strict"
        var isValid=false;          //if its valid
        isValid=checkCard(ccNum);
        if (isValid) {
            alert ("Card Number " + ccNum + " is a valid credit card number")
        }
        else {
            alert ("Card Number " + ccNum + " is not a valid credit card number. Try again.")
        }

    }

function checkCard(strCardNum) {
// Check Credit Card
    "use strict";

//Var
    var intPos=strCardNum.length-1;     //The Position in the string
    var intCheckTotal=0;
    var intEvenProd=0;
    var i=1;
    for (i=1;i<=strCardNum.length;i++) { 
        if ((i%2)==1) {             //Odd Position
            intCheckTotal+=(strCardNum.charAt (intPos)-0);
        }
        else {                  //Even Position
            intEvenProd=strCardNum.charAt(intPos)*2;
            if (intEvenProd<10) {
                intCheckTotal+=(intEvenProd-0);
                }
            else {
            intCheckTotal+=(1+intEvenProd%10);
            }
        }
    intPos--;
    }
//Now Check if a valid number
    if (intCheckTotal%10==0) {
        return true;            //return  true
        //alert ("Card Number " + strCardNum + " is a valid credit card number");
    }
    else {
        return false;
        //alert("Card Number " + strCardNum + " is not a valid credit card number. Try again.")
            }
    }

提前感谢您提供任何帮助。 亲切的问候 杰登。

另请注意。如果有人看到我发布的最后一个问题。关于信用卡检查员。对不起,这是如此糟糕的问题。

0 个答案:

没有答案