2011-08-01 9 views
-1

내가 뭘 잘못하고 있니? 내가 C s22자바 스크립트 : 간단한 함수, var가 설정되지 않음

가 왜이 모든 경우() 문을지나 건너 뛰는 표시하는 경고를 얻을 난 case 대신 if 그것을 시도하고

function updateResultPage(the_resp,r) { 
    var to_alert="s"; 

    if(the_resp=="11"){ 
     to_alert="Thank you!!"; 
    } 
    else if(the_resp=="22"){ 
     to_alert="Error:."; 
    } 
    else if(the_resp=="33"){ 
     to_alert="ERROR 234dfR,."; 
    } 

    alert("c "+to_alert+the_resp); 
} 

를 작동하지 않는 이유는 무엇입니까?

편집 : 이 좋아, 나는 정확한 RESP의 값을 확인하려면이 코드를 추가 : ... 내가 트리밍 문제가있는 것 같습니다, 그래서 두 번째 * 다음 줄에 오는 alert("d "+to_alert+" *"+the_resp+"*");

+1

'else'옵션이 없으므로 'else if'가 일치하지 않으며 그 결과 변수가 설정되어 있지 않습니다. –

+0

알 겠어.하지만 경고에서 'the_resp'가 있고 22가 표시되면 왜 일치하지 않는거야? – Ryan

+0

무슨 소리 야, 그게 효과가있다. 또한 함수가 두 가지 인수를 취하는 이유는 무엇입니까? – zellio

답변

2

alert("c "+to_alert+the_resp);

를 제거하거나 추가 else

else{ 
    alert("c "+to_alert+the_resp); 
} 
+0

위의 편집을 참조하십시오 ... – Ryan

+0

먼저 대답을 선택 했으므로 덕분에 – Ryan

3

추가

the_resp = the_resp.replace(/^\s*|\s*$/g,""); // will trim it. 

기능의 시작 부분.

+0

위의 편집 참조 ... – Ryan

1

실제 문자열 또는 문자열 개체 (int를 말하기 위해 사용됨)를 전달하는지 확인하는 것이 좋습니다. 또한 적절하게 트리밍하여 입력에 비 인쇄 공백이 없는지 확인할 가치가 있습니다.