我之前在其他文件上有过信用卡号码检查器。我把它复制到我的这个新项目中。但现在它似乎没有给我一个警报,如果它是正确的。 我不确定这个的原因,因为我已经从几个工作项目中复制并粘贴了更改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.")
}
}
提前感谢您提供任何帮助。 亲切的问候 杰登。
另请注意。如果有人看到我发布的最后一个问题。关于信用卡检查员。对不起,这是如此糟糕的问题。