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

C2 / C3/C4のチェックに「elseif」を使用してみてください。または、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
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 に答える
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 に答える