【发布时间】:2014-05-28 11:24:09
【问题描述】:
您好,我的 javascript 验证有问题。我正在尝试验证一个信用卡号,我希望它显示 13 到 18 个数字和单个空格。
我的 Javascript 代码:
<script type="text/javascript">
function validateForm()
{
var x=document.forms["checkout_details"]["creditcard"].value;
if(x.length != 13 || x.length != 18)//if the length is not 13 or 18
{
alert("Please enter a valid credit card number");//display message to user;
return false;
}
}
</script>
HTML/PHP 代码:
echo '<form name="checkout_details" action="confirm.php" onsubmit="return validateForm()" method="post">';
echo '<font color="red">*</font> <b>Credit Card Number:</b> <input type="text" name="creditcard" id="creditcard"><br /><br />';
echo '<input type="submit" value="Purchase">';
echo '</form>';
任何人都帮我告诉我我做错了什么。谢谢。
【问题讨论】:
-
您遇到的错误是什么?在验证信用卡号码时,还可以查看 luhn 算法。我还建议不仅从客户端验证这些数字,还从服务器端验证这些数字。
-
@scragar 关于函数返回值的部分是真的,但是 onsubmit 事件只检查
false的确切返回值 -
还记得在函数末尾添加一个 return true。
-
@MatteoTassinari 测试并确认,没有意识到这一点,谢谢指出。
-
使用 Luhn 算法:en.wikipedia.org/wiki/Luhn_algorithm
标签: javascript php html