【发布时间】:2017-08-28 06:54:17
【问题描述】:
我想运行一个程序,将信用卡类型与输入的号码匹配,即当我从 select 中选择卡类型时,如果卡类型与输入的号码匹配,则应该加载卡的图像。我使用了 switch案例与 if 和 else 在 case.当我运行代码时只有 else 部分正在工作。
我需要的是它应该显示警报消息作为有效卡和卡的图像应该显示,如果不是它应该作为无效卡发出警报。这是我下面的代码..
<script type="text/javascript">
function validate()
{
var a = document.getElementById("mySelect").value;
var b = document.getElementById("cardno").value;
var v = /^(?:4[0-9]{12}(?:[0-9]{3})?)$/;
var e = /^(?:3[47][0-9]{13})$/;
var j = /^(?:(?:2131|1800|35\d{3})\d{11})$/;
var element = document.getElementById("img1");
var element1 = document.getElementById("img2");
var element2 = document.getElementById("img3");
var card=a;
switch(card){
case "visa":
if (b == v)
{
alert("valid");
element.src="images/visa.jpg";
} else {
alert("Invalid card number,Should start with 4");
}
break;
case "ae":
if (b == e) {
alert("valid");
element1.src="images/ae.jpg";
} else {
alert("Invalid card number,Should start with 34 or 37 ");
}
break;
case "jcb":
if (b == j) {
alert("valid");
element2.src="images/jcb.jpg";
} else
{
alert("Invalid card number,Should start with 2131
or 1800");
}
break;
default:
alert("Enter valid card numbers");
}
}
</script>
<html>
<head>
<title>User Form</title>
</head>
<body style="background-color: palegreen">
<div align="left" height="50%" width="40%">
<form action="user" method="post">
<table>
<tr>
<td><label>UserName:</label></td>
<td><input type="text" name="uname"
placeholder="Enter username" required><br> <br></td>
</tr>
<tr>
<td><label>cardname:</label></td>
<td><select id="mySelect">
<option value="">SelectCard</option>
<option value="visa">Visa</option>
<option value="ae">AmericanExpress</option>
<option value="jcb">Jcb</option>
</select><br> <br></td>
</tr>
<tr>
<td><label>cardnumber:</label></td>
<td><input type="text" name="nom" id="cardno" maxlength="16"
pattern="/^[0-9]+$/" title="Enter Valid Card No"
placeholder="Enter Card number" onkeypress="validate()" required><br>
<br></td>
</tr>
<tr>
<td><label>Date Of Expiry:</label></td>
<td><input type="text" name="doe" placeholder="dd/MM/yyyy"
required><br> <br></td>
</tr>
<tr>
<td><label>Bill Due Date:</label></td>
<td><input type="text" name="dat" placeholder="dd/MM/yyyy"
required><br> <br></td>
</tr>
<tr>
<td><input type="submit" value="Add"
style="height: 30px; width: 100px" class="glowing-border"></td>
</tr>
</table>
</form>
</div>
<img src="images/visa.jpg" id="img1" align="right" height="40"
width="50">
<img src="images/ae.jpg" id="img2" align="right" height="40" width="50">
<img src="images/jcb.jpg" id="img3" align="right" height="40"
width="50">
</body>
</html>
【问题讨论】:
-
您可以删除所有 IF 和 ELSE 语句并移动 ELSE 部分以切换默认大小写。
-
谢谢,如果我删除 if 和 else 语句,文本框中输入的数字如何与正则表达式匹配。
-
根据您当前的逻辑,我认为您可以更改 IF 条件,例如 if(v.test("b")) 和 if(e.test("b")) 和 if(j.test ("b"))。
标签: javascript jsp