Javascript用户输入验证

时间:2013-02-21 15:32:02

标签: javascript

我是一个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>

对我很轻松:)谢谢!

6 个答案:

答案 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.');
}