2016-12-21 7 views
-2

試行回数が2の場合、警告は表示されません。 attempts変数は増加していませんか?私は見つけることができません。助けてください。2番目のelse文(試行回数)が動作していないようです

var attempts = 0; 
var $code = "youknowme"; 

$('.go').on('click', function() { 
    if ($('#pass').val() === $code) { 
     window.open("3.html"); 
    } else { 
     alert("wrong code"); 
     attempts = attempts + 1; 
    } 
}); 

if (attempts === 2) {  
    /*this code not working*/ 
    alert("You have last chance left"); 
} else if (attempts === 3) { 
    window.close(); 
} 
+0

私はあなたのhtmlを見ることができ –

+2

'ので、 '0' *と定義しているから* – David

+3

コードを正しくフォーマットしたので、' attempts = == 2 'を読み込みます。実際には 'click'ハンドラに入れる必要があると思います。 –

答えて

3

これは、コードをclickイベント内に配置する必要があるためです。それが立てば、if文は1回だけチェックされ、試行回数を0に設定した直後です。

コードを正しくフォーマットしておくと、検出するのがずっと簡単になりました。

ですがどうあるべきかです:

var attempts=0; 
var $code="youknowme"; 

$('.go').on('click',function(){ 

    if($('#pass').val()===$code){ 
     window.open("3.html"); 
    }else{ 
     alert("wrong code"); 
     attempts=attempts+1; 
    } 

    /* code is now executed each time the click event occurs */ 
    if(attempts===2){ 
     alert("You have last chance left"); 
    } 
    else if(attempts===3){ 
     window.close(); 
    } 

}); 
1

あなたのコードは、内部関数であるべき:

var attempts=0; 
var $code="youknowme"; 

$('.go').on('click',function(){ 
    if($('#pass').val()===$code){ 
     window.open("3.html"); 
    }else{ 
     alert("wrong code"); 
     attempts=attempts+1; 
    } 
    if(attempts===2){  /*this code not working*/ 
     alert("You have last chance left"); 
    } 
    else if(attempts===3){ 
     window.close(); 
    } 
}); 
0

あなたの文は、あなたのonclickリスナーの内側にする必要があります。彼らはクリックされたときに実行されていません。

0

'if'ステートメントは 'click'関数の外にあります。 `` ` $ {'go'}。on( 'click'、function(){ if($( '#pass').val()=== $ code){ window.open(" 3.html "); }他{ 警告(" 間違ったコード "); 試行=試行+ 1;? }

if (attempts === 2) {  
     /*this code not working*/ 
     alert("You have last chance left"); 
    } else if (attempts === 3) { 
     window.close(); 
    } 
}); 

` ``

関連する問題