我是一个javascript新手。我正在尝试基于他们输入的“客户端ID”创建到客户端开发站点的Web重定向。
这是我到目前为止所做的,你会看到我完全倒退了。
我想在新标签页中重定向到该网址。但是如果他们输入了错误的客户ID,会弹出一个提示“抱歉,再试一次”。随着警报的添加,我得到一个弹出窗口,无论他们是否输入了正确的“代码”。
<head>
<script>
function validateCode()
{
var codeTextBox = document.getElementById("codeTextBox").value;
if (codeTextBox == 'C1')
{
window.location.href = "http://www.client1.com";
}
if (codeTextBox == 'C2')
{
window.location.href = "http://www.client2.com";
}
if (codeTextBox == 'C3')
{
window.location.href = "http://www.client3.com";
}
if (codeTextBox == 'C4')
{
window.location.href = "http://www.client4.com";
} else {
alert('Sorry, try again.');
}
}
</script>
</head>
<body>
Enter User ID:
<input type="text" name="codeTextBox" id="codeTextBox" />
<input type="submit" name="Submit" value="Submit" onclick="validateCode()" />
</body>
对我很轻松:)谢谢!
答案 0 :(得分:1)
尝试使用“else if”进行C2 / C3 / C4的检查。或者,您可以查看如何使用switch语句。 (参见所有其他答案。)
JavaScript并不总是按照您预期的顺序执行操作;在这里,您希望立即重定向到新页面,但它希望首先完成代码,因此只要代码不是C4就会发出警报。
答案 1 :(得分:1)
使用switch case,这里是示例如何在您的代码中使用。请你完成它。
function validateCode(){
var codeTextBox = document.getElementById("codeTextBox").value;
switch(codeTextBox){
case 'C1':
window.location.href = "http://www.client1.com";
break;
case 'C2':
window.location.href = "http://www.client2.com";
break;
...
...
...
default:
alert('Sorry, try again.');
}
}
答案 2 :(得分:0)
if (codeTextBox == 'C1')
{
window.location.href = "http://www.client1.com";
}
else if (codeTextBox == 'C2')
{
window.location.href = "http://www.client2.com";
}
else if (codeTextBox == 'C3')
{
window.location.href = "http://www.client3.com";
}
else if (codeTextBox == 'C4')
{
window.location.href = "http://www.client4.com";
}
else {
alert('Sorry, try again.');
}
答案 3 :(得分:0)
试试这个:
<head>
<script>
function validateCode(){
var codeTextBox = document.getElementById("codeTextBox").value;
if (codeTextBox == 'C1')
{
window.location.href = "http://www.client1.com";
}
else if (codeTextBox == 'C2')
{
window.location.href = "http://www.client2.com";
}
else if (codeTextBox == 'C3')
{
window.location.href = "http://www.client3.com";
}
else if (codeTextBox == 'C4')
{
window.location.href = "http://www.client4.com";
}
else
{
alert('Sorry, try again.');
}
}
</script>
</head>
<body>
Enter User ID:
<input type="text" name="codeTextBox" id="codeTextBox" />
<input type="submit" name="Submit" value="Submit" onclick="validateCode()" />
</body>
答案 4 :(得分:0)
问题是if是独立的,所以即使Value是“C1”,那么最后一个if的'else'仍然会被执行。
你可以这样做:
if (codeTextBox == 'C1')
{
window.location.href = "http://www.client1.com";
}
else if (codeTextBox == 'C2')
{
window.location.href = "http://www.client2.com";
}
else if (codeTextBox == 'C3')
{
window.location.href = "http://www.client3.com";
}
else if (codeTextBox == 'C4')
{
window.location.href = "http://www.client4.com";
}
else
{
alert('Sorry, try again.');
}
或使用开关
switch(codeTextBox )
{
case 'C1':
window.location.href = "http://www.client1.com";
break;
.
.
.
default:
alert('Sorry, try again.');
}
答案 5 :(得分:0)
在我看来,这更简单:)
var redirectUrls = {c1: 'c1.com', c2: 'c2.com', c3: 'c3.com' };
if (codeTextBox in redirectUrls) {
window.location.href = redirectUrls[codeTextBox];
} else {
alert('Sorry, try again.');
}