2013-08-30 2 views
2

내 웹 사이트에 연락처 필드가 있고 삽입 된 값이 좋은지 아닌지 테스트합니다. 그 부분은 잘 작동합니다. 값이 맞으면 value = true로 설정된 var가 있습니다.var = true는 다른 함수로 전달되지 않습니다.

두 번째 함수를 호출합니다.이 함수는 모든 연락처 필드에 true가 있는지 테스트합니다. 그렇다면 보내기 단추가 사용되지 않습니다. 그렇지 않으면 사용되지 않습니다. 슬프게도 콘솔에 다음과 같은 오류가 발생합니다. Uncaught ReferenceError : nameIsGoed가 정의되지 않았습니다.. 당신이 나를 도울 수 있기를 바랍니다! :) 조용히 같은

function checkEmptyMessage(field) { 
if (field.value != '') { 
    document.getElementById("message").style.borderColor="#91bc1e"; 
    var messageIsGoed = true; 
} 
else if (field.value == ''){ 
    document.getElementById("message").style.borderColor="#f15a24"; 
    var messageIsGoed = false; 
}} 

, 값이 true인지 여부를 확인 그렇다면 기능입니다 트리 기능

하나 : 비활성화 GET의 거짓.

function checkDisable(){ 
    if ((nameIsGoed == true) && (messageIsGoed == true) && (mailIsGoed == true)){ 
     document.getElementById("submit").disabled=false; 
     alert("mooizo"); 
    } 
    else{ 
     alert("er missen nog gegevens"); 
    } 

} 
+1

함수 내부의'var' 키워드가 의미하는 바를 읽고 싶습니다. – CBroe

+1

범위에 관해 읽어야합니다. [var - JavaScript - MDN] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var) – Itay

답변

9

당신은, var messageIsGoed;는 함수 외부 (선언)되어야 범위의 문제가있다, 그래서 당신이 그것을주는 값은 다른 기능을 사용할 수 있습니다.

var messageIsGoed; // outside the function 

function checkEmptyMessage(field) { 
if (field.value != '') { 
    document.getElementById("message").style.borderColor="#91bc1e"; 
    messageIsGoed = true; 
} 
else if (field.value == ''){ 
    document.getElementById("message").style.borderColor="#f15a24"; 
    messageIsGoed = false; 
}} 

나는 추가 (선언) 함수 외부 var messageIsGoed;하고 (실제로 함수 내에서 새로운 변수에만 사용할 수있는) 다시 선언하지 않도록하는 기능 내부의 var를 제거했습니다.

는 선언 변수에 대한 자세한 내용은 여기를 읽어하십시오 지역 변수가 MDN:var

+0

답장을 보내 주셔서 감사합니다. 여름 휴가가 끝나면 스코프를 잊었습니다.) – Menno

+0

@ 메노, 천만에. 때로는 다른 사람들이 코드를보고 싶어하기도합니다. – Sergio

1

있다고.
선언 된 함수 안에 만 존재합니다.

모든 곳에 존재할 전역 변수를 만들고 싶습니다.
변수를 함수 외부에 선언하십시오.

+4

어쩌면 그와 함께 할 수 있습니다. – sircapsalot

2

var를 사용하여 messageIs를 지정한 경우 함수 밖에서 사용할 수 없습니다. 두 함수의 바깥에 선언하고 var없이 내부적으로 사용하면 전역 변수가됩니다.

관련 문제