您好,我的 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>';
谁能帮帮我,告诉我我做错了什么。谢谢。
最佳答案
而不是
if(x.length != 13 || x.length != 18)
你应该使用
if(x.length != 13 && x.length != 18)
事实上,根据您的原始条件,18 与 13 不同,并且会返回 true
!
此外,仅接受 13 或 18 的精确长度,如果您想拒绝任何短于 13 或长于 18 的内容,那么您需要
if(x.length < 13 || x.length > 18)
关于javascript - 信用卡号验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23910305/