1

ifの後の何らかの理由で、別の場所に移動するifを除いて、elseに続きます。これが私が現時点で持っているコードです

<script type="text/javascript">
    function whatname(button) {
        var post = prompt("Name?", "Visitor")
        if(post == "Nick"){
            alert("Hi Nick")
            window.location = "index.html"
        }
        if(post == "Visitor"){
            alert("Welcome Visitor")
            window.location = "index.html"
        }
        if(post == ""){
            alert("Please Enter Name")
        }
        if(post == null){
            alert("Closing")
        }
        if(post == "show me a secret"){
            window.location = "secret.html"
        }
        if(post == "Greg"){
            alert("Test")
        }
        if(post == "greg"){
            alert("Test 1")
        }
        else{
            alert("Welcome " + post + ", Have Fun!")
            window.location = "index.html"
        }
    }
</script>

if が発生した後、else が続きます。キャンセルをクリックすると (null になります)、「Closeing」と表示されますが、別のポップアップが表示され、「Welcome Null, Have Fun!」と表示されます。それが私をどこか別の場所に連れて行くよりも、何が悪いのかわからないので、助けていただければ幸いです。

4

8 に答える 8

8

else ifではなく使用するif

if(condition 1) {
} else if(condition 2) {
} else {
}

今起こっていることは、最初postに「Nick」であるかどうかを確認していることです。であるかどうかにかかわらず、post「Visitor」であるかどうかのチェックに進みます。もちろん、これはあなたが望むものではありません。最初のテストが false であることが判明した場合にのみ、2 番目のテストを実行します。

書かれているように、最後のifステートメントだけにelse. 以外の場合はいつでも、「ようこそ、楽しんでください」というメッセージpostが表示されgregます。

于 2012-08-21T14:56:17.163 に答える
0

これは、switch ステートメントに適しているように見えます。これにより、保守性が大幅に向上します。

 var post = prompt("Name?", "Visitor") 
 switch(post)
 {
 case "Nick":
        alert("Hi Nick")  
        window.location = "index.html";  
        break;
 case "Visitor":
        alert("Welcome Visitor")  
        window.location = "index.html";
        break;  
 case "":
        alert("Please Enter Name") ;
        break;
 case null:
        alert("Closing");  
        break; 
 case "show me a secret":
        window.location = "secret.html";  
        break;
 case "Greg":  
        alert("Test");  
        break;
 case "greg":
        alert("Test 1")  
        break;    
 default:
        alert("Welcome " + post + ", Have Fun!")  
        window.location = "index.html";    
 }
于 2012-08-21T15:04:52.347 に答える