2012-10-22 5 views
0

가능한 중복 작동하지 함수에서 전역 변수를 업데이트 :
Javascript global variable is not updating는 자바 스크립트

내가 만드는 중이라서이 사이트를 가지고있다. 다른 함수에서 전역 변수를 업데이트하려고합니다. 전역 변수 statCheck는 0으로 초기화됩니다. 전역 변수를 업데이트하고 경고로 새 값을 표시하는 2 개의 함수를 만들고 두 번째로 업데이트 된 전역 변수의 새 값을 경고하는 함수를 작성했습니다. 문제는 이제 내가 첫 번째 함수를 호출 할 때 새로운 업데이트 된 값을 알려주지 만 두 번째 함수를 호출하면 원래 값인 0으로 경고합니다. 내 코드는 다음과 같습니다.

var statCheck=0; 

var users=new Array(); 
var password=new Array(); 
users[0]="clydewinux"; 
password[0]="moonfang"; 
users[1]="freddipasquale"; 
password[1]="evastar182"; 

function verifyInput(){ 
var u=login.username.value; 
var p=login.password.value; 
for (var c=0;c<=1;c++){ 
    if(u===users[c]&&p===password[c]) 
     { 
     statCheck=1; 
     alert(statCheck); 
     window.open("login.htm", '_self'); 
     break;} 
    else 
     {document.getElementById("username").value="Invalid username..."; 
     window.open("home.htm", '_self'); 
     break;} 
    } 

     } 

function logout(){ 
alert(statCheck); 
window.open("home.htm", '_self'); 
} 

* 참고 : function verifyInput()은 첫 번째 함수이고 logout은 두 번째 함수입니다.

window.statCheck = 0; 
// ... 
window.statCheck = 1; 
// ... 
alert(window.statCheck); 

이것은 또한 코드의 가독성에 도움이 :

+4

비밀번호 확인 : 당신이하고 있습니다. * 매우 잘못되었습니다. 우선, 자바 스크립트를 사용하고 있습니다. 즉, 쉽게 건너 뛸 수 있습니다. 그런 다음 소스 코드에 암호를 일반 텍스트로 포함시켜 모든 사람이 볼 수있게합니다. 이것은 글자 그대로 암호를 확인하기 위해 할 수있는 가장 최악의 일입니다. 그것은 전혀 확인하지 않는 것보다 더 나쁩니다. – NullUserException

+2

이 질문을 이미 물어 본 이유는 무엇입니까? 다시 묻는 이유는 무엇입니까? : http://stackoverflow.com/questions/13016498/javascript-global-variable-is-not-updating –

+0

죄송합니다. 아직 패스워드를 확인하지 않으려면 자바 스크립트를 사용하지 마십시오 .. – clydewinux

답변

1

전역 변수를 사용하여, 그들에게 명시 적으로 글로벌하게하는 것이 좋습니다.

+0

답변 주셔서 감사합니다,하지만 작동하지 않습니다 .. :-( – clydewinux