2013-03-02 4 views
-2
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title></title> 

<script type="text/javascript"> 
    spreadSheet= new Array(9),summary=""; 
    for(var i=0; i<spreadSheet.length; i++) 
     spreadSheet[i]=0; 

    document.writeln("<h1>Poll<\/h1><form method='get' id='tally' action=''>"); 
    document.writeln("<p>Enter Sales Amount:<br/><input type='text' id='cash'/><input type='button' value='calculate' onclick='calculateSalary()'/><\/p>"); 
    document.writeln("<\/form>"); 

    function calculateSalary(){ 
      var value=document.getElementById("cash").value; 
      switch(value){ 
       case (value<300):++spreadSheet[0]; break; 
       case (value<400):++spreadSheet[1]; break; 
       case (value<500):++spreadSheet[2]; break; 
       case (value<600):++spreadSheet[3]; break; 
       case (value<700):++spreadSheet[4]; break; 
       case (value<800):++spreadSheet[5]; break; 
       case (value<900):++spreadSheet[6]; break; 
       case (value<1000):++spreadSheet[7];break; 
       default:++spreadSheet[8];break; 
      } 
    } 
    function display(){ 
     summary="Number of People who earned salaries in the following ranges: \n\n"; 
     summary+="$200 – 299:\t" + spreadSheet[0] + "\n"; 
     summary+="$300 – 399:\t" + spreadSheet[1] + "\n"; 
     summary+="$400 – 499:\t" + spreadSheet[2] + "\n"; 
     summary+="$500 – 599:\t" + spreadSheet[3] + "\n"; 
     summary+="$600 – 699:\t" + spreadSheet[4] + "\n"; 
     summary+="$700 – 799:\t" + spreadSheet[5] + "\n"; 
     summary+="$800 – 899:\t" + spreadSheet[6] + "\n"; 
     summary+="$900 – 999:\t" + spreadSheet[7] + "\n"; 
     summary+="$1000 and over\t" + spreadSheet[8] + "\n"; 
     return summary; 
    } 
    document.writeln("<textarea cols='80' rows='15'>"+display()+"<\/textarea>"); 

</script> 
</head> 
<body> 
</body> 
</html> 

나는 자바 스크립트 초보자입니다. 그렇습니다. 나는 게시하기 전에 자신을 돕기 위해 솔직하게 노력했습니다.왜이 스크립트는 작동하지 않습니까? [JS]

버튼에서 사용자 입력을 받아들이고 사용자가 입력 한 값을 기반으로 전역 배열 요소를 증가시키는 간단한 프로그램을 만들고 싶습니다. 문제는 전역 배열을 올바르게 작동시킬 수 없다는 것입니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+2

로그에 오류 메시지가 표시되지 않습니까? –

+0

왜 ''섹션에서'document.write()'를 사용하고 있습니까? ''이어야합니다. – jfriend00

+0

명확히하십시오 다른 –

답변

3

주석에서 설정했듯이 문제는 사용자가 값을 증가 시키지만 아무 것도 수행하지 않는 것입니다. textarea의 내용은 이미 설정되어 있으며 원래 작성한 변수가 변경되면 자동으로 다시 작성되지 않습니다.

텍스트 영역에게 그것을 만드는 id를 보내기 때문에 그

document.getElementById('results').value = display(); 

는 또한 switch(true)에 switch 문을 변경 : 그것은 텍스트 영역을 업데이트하도록

document.writeln("<textarea cols='80' rows='15' id='results'>"+display()+"<\/textarea>"); 

calculateSalary() 기능이 추가하기 올바른 변수를 증가시킵니다.

데모 : http://jsfiddle.net/QkQ5v/

+0

+1 바이올린 – asprin

+0

감사합니다. –

관련 문제