2017-08-26 4 views
-1

checkusername()に電話すると、警告が表示されます。しかし、私がmarkcheck()に電話すると、なぜそれが警告されますか?function checkusername()は警告していますが、私はそれをしたくありません

私はフラグとしてcheckbutton =1を使用しており、私も条件if checkbutton==1を使用しています。それは警告するべきではありませんが、まだ警告しています。

誰かがこの機能を縮小できると思う人は、あなたのmarkcheck()関数の外側

<script> 
var checkbut = 0; 
function markcheck() 
{ 
    checkbut = "1"; 
    checkusername(); 
} 
function checkusername() 
{ 

var username = document.getElementById("username").value; 
$.ajax({ 
    method: 'POST', 
    url: 'saves/checkusername.php', 
    data: { 
     username: username 
    }, 
    beforeSend: function() 
    { 
     document.getElementById("checkbutton").innerHTML = "Checking"; 
     setTimeout(function(){document.getElementById("checkbutton").innerHTML = "Check Availiblity";},1000); 
    }, 
    success: function(data) 
    { 

     if (data == "1") 
     { 
      document.getElementById("taken").innerHTML = "This Username is already taken. Choose a new one."; 
      document.getElementById("username").className = "form-control form-control-danger"; 
      document.getElementById("labelusername").style.color = "red"; 
     } 
     else 
     { 
      document.getElementById("labelusername").style.color = ""; 
      document.getElementById("taken").innerHTML = ""; 
      if (data == "0") 
      { 
       if (checkbut == "0") 
       { 
        alert('ujhygtfrd'); 
       } 
       else 
       { 

       } 
      } 
     } 
    } 
}) 
} 
</script> 
+0

は、コードのhttps://codereview.stackexchange.com/を使用してください、その値は、関数の外でそれを定義アクセスできるように、関数の内部では、外に置くことがグローバルにあります最小化! – z3nth10n

+1

'var checkbutton =" 1 ";'は**ローカル**変数です。 'markcheck()'の内部にのみ存在します。 JS – Thomas

+0

の可変スコープも読んでください。jQueryを使用する場合は、 'document.getElementById'の代わりに' $( 'id id') 'を使用してください。 –

答えて

1

設定チェックボタン変数:これを縮小化してください!これに代えて

function markcheck() 
{ 
    var checkbutton = "1"; 
    checkusername(); 
} 

この:

var checkbutton = "1"; 
function markcheck() 
{ 
    checkusername(); 
} 

またはこのような:

var checkbutton; 
function markcheck() 
{ 
    checkbutton = "1" 
    checkusername(); 
} 

変数チェックボタンは地元の内側にある、これが起こりますスコープチェックマーク機能となり、マークチェック()が終了すると消去されます。

+0

私はcheckusername()またはmarkcheck()のどちらかを呼び出しているだけなので、varの外側にあるvar checkbuttonを作成しても – sidhant

+0

@sidhant noを作成しないと、変数はすべての関数とほかのjsファイルで利用できます。 – z3nth10n

+0

完了しましたが、それ以外の場合は毎回呼び出されます – sidhant

0

あなたの変数は、他の機能は

var checkButton; 
function checkMark(){ 
    checkButton = "1"; 
    anotherFunction(); 
} 

function anotherFunction(){ 
if(checkButton=="1"){ 
    return 0; 
}else{ 
alert("yeah its value is not 1"); 
} 
} 
+0

ユーザは、他のケースが常に呼び出されていることを伝えています。 – z3nth10n

+0

完了しましたが、同じことが起こっています – sidhant

関連する問題