2014-10-13 2 views
-1

간단한 if-else 문을 작성하려고하는데 코드를 실행할 때 항상 이어야한다는 프롬프트에 내용을 입력해도 항상 true을 반환합니다. ran it through JsFiddle이 있는데 코드 스 니펫이 완벽하게 유효하다고 보입니다.간단한 if-else 문은 항상 true를 반환합니다.

var captchaTest = 5; 
var captchaInput = prompt('What is five plus five?'); 

if ('captchaTest + captchaInput = 10') { 
    alert('You passed, you may continue'); window.location.href = 'pagepass.html'; 
} 
else { 
    alert('Failed, try again.'); window.location.href = 'main.html'; 
} 

누군가 내가 잘못한 것을 말할 수 있습니까?

+2

귀하의 구문의 사용을 볼 수 없습니다 격렬 올바르지 않습니다. 그것이 구문 분석하는 동안 나는 그것이 당신이 기대하는 것을하지 않을 것이라고 확신합니다. – chsh

답변

6

비 빈 문자열이 truthy입니다 제거 비교 연산자 == 대신 할당 연산자 =

를 사용해야합니다. 'captchaTest + captchaInput = 10'은 부울로 평가 될 때 true입니다.

당신은 인용 부호를 제거하고 변경해야 ===에 : 외에도 다른 나는 또한 당신의 보안 문자 질문에 따라, 당신의 상태는 다음과 같이되어야한다는 점을 만들 것 것으로 대답에서

if (captchaTest + captchaInput == 10) 
+1

또한 'ten'을 입력하는 사용자에게는이 기능이 작동하지 않습니다. –

0

String이므로 'captchaTest + captchaInput = 10'을 사용하지 않아야하며, 공백이 아닌 한 항상 true으로 평가하십시오.

또한 당신은 그래서 따옴표

자바 스크립트
if ((captchaTest + captchaInput) == 10) 
1

if (captchaInput == 10){ 
    alert('You passed, you may continue'); window.location.href = 'pagepass.html'; 
} 
else { 
    alert('Failed, try again.'); window.location.href = 'main.html'; 
} 

내가 변수 captchaTest

관련 문제