0

我是一个javascript新手。我正在尝试根据他们输入的“客户 ID”创建到客户开发站点的 Web 重定向。

这是我到目前为止所拥有的,你会看到我正在完全倒退。

我想重定向到新标签页中的 URL。但是,如果他们输入了错误的客户 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>

对我放松点:)谢谢!

4

6 回答 6

1

尝试使用“else if”来检查 C2/C3/C4。或者,您可以研究如何使用 switch 语句。(查看所有其他答案。)

JavaScript 并不总是按照你期望的顺序做事。在这里,您期望立即重定向到新页面,但它希望首先完成代码,因此只要代码不是 C4,就会发生警报。

于 2013-02-21T15:38:39.500 回答
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.'); 
    }
}
于 2013-02-21T15:39:19.173 回答
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.');
}
于 2013-02-21T15:45:58.800 回答
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.');
    }
于 2013-02-21T15:36:56.160 回答
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>
于 2013-02-21T15:37:55.760 回答
0

问题是 if 是独立的,因此即使值为“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.');
}
于 2013-02-21T15:38:16.770 回答