我已经使用了下面链接中的代码来尝试验证信用卡,但是当我在该字段中提交错误的数据时,我没有收到任何警报。

Strip spaces before performing Luhn check

我的表格如下:

<form id="myform" method="post" action="">

<p>Select credit card:
   <select tabindex="11" id="CardType">
      <option value="AmEx">American Express</option>
    <option value="CarteBlanche">Carte Blanche</option>
    <option value="DinersClub">Diners Club</option>
    <option value="Discover">Discover</option>
    <option value="EnRoute">enRoute</option>
    <option value="JCB">JCB</option>
    <option value="Maestro">Maestro</option>
    <option value="MasterCard">MasterCard</option>
    <option value="Solo">Solo</option>
    <option value="Switch">Switch</option>
    <option value="Visa">Visa</option>
    <option value="VisaElectron">Visa Electron</option>
    <option value="LaserCard">Laser</option>
  </select>
</p>

<p>
Enter number:
 <input type="text" id="CardNumber" maxlength="24" size="24" />
  <input type="submit" id="submitbutton" onsubmit="Validate(Luhn);" />
</p>

</form>

也许我使用了错误的代码?

最佳答案

移动onsubmit="Validate(Luhn);"
到表单标签并传递表单

这样-请注意我通过表格并从表格中找到号码。
我还移动了测试,并返回false / true

http://jsfiddle.net/mplungjan/VqXss/

function Validate(theForm) {
  var Luhn = theForm.CardNumber.value;
  var LuhnDigit = parseInt(Luhn.substring(Luhn.length-1,Luhn.length));
  var LuhnLess = Luhn.substring(0,Luhn.length-1);
  if (Calculate(LuhnLess)!=parseInt(LuhnDigit)) {
    alert("\n\nYou have mis-typed your card number! \nPlease check and correct.\n\n")
    return false;
  }
  return true;
}
</script>
</head>
<body>
<form id="myform" method="post" action="" onsubmit="return Validate(this)">

09-10 06:29