2011-04-26 8 views
0

나는 약간의 곤경이있다. 루프를 변경할 수 있도록 루프에서 변수를 실행하려고합니다. 다음은 현재 가지고있는 코드입니다.텍스트 상자에서 텍스트를 호출하여 자바 스크립트에서 변수를 설정하는 방법

<FORM NAME="myform" ACTION="" METHOD="GET"> 
<INPUT TYPE="text" NAME="inputbox" id="Variable"><P> 
</FORM> 

<script type="text/javascript"> 
document.getElementById("Variable").value = i; 
var i=5; 
for (i=0;i<=5;i++) 
{ 
document.write(" " + i); 
document.write("<br />"); 
} 
</script> 

var i를 정의하기 위해 양식의 텍스트 상자에있는 텍스트를 호출하려고합니다. 나는 또한 HTML의 주인공이 아니라는 것을 지적하고 싶습니다. 그리고 제가 잘못했음을 알게되면, 할 수 없다고 말해주십시오.

답변

4

난 당신이 같은 것을 의미 생각 :

var count = parseInt(document.getElementById("Variable").value, 10); 
var i; 
for (i = 0; i < count; ++i) { 
    // ...do something... 
} 

그 기능 :

  1. 이 ID로 요소를 찾습니다 (당신은 이미했다) : document.getElementById("Variable').
  2. 문자열 인 value 속성 값을 검색합니다.
  3. 십진법 (8 진수 또는 16 진수와 반대)을 사용하여 문자열을 parseInt을 통해 숫자로 변환합니다.
  4. 0부터 시작하여 해당 숫자까지의 루프입니다. 이 페이지의 주요 구문 분석 (초기로드) 후 document.write을 사용할 수 없습니다, 당신은 아마 전에 페이지의 주요 구문 분석을 양식 필드 에서 값을 사용하지 않으려는

주 완료되었으므로 여기에서 document.write을 수행하지 않을 것입니다. 당신은 요소의 innerHTML을 그런 식으로 설정할 수 있습니다. 다시

내 "... 당신은 주요 구문 분석 후 document.write을 사용할 수 없습니다 ..."기술적으로, 당신은 ,하지만 당신은 완전히 페이지를 대체 할 것입니다 수 있습니다보다는 단지에 추가.

내 다시

"... 당신은 아마 전에 주요 구문 분석을 양식 필드 에서 값을 사용하지 않으려는 ... 완료 ..."당신은 수 있습니다,하지만, 한 양식 필드는 페이지 마크 업의 스크립트 위에 있습니다. 나는 문자 그대로 당신이 아마 을 원하지 않는다는 것을 의미 했었습니다.을 원할 것입니다, 아마도 당신은 사용자가 어떤 값을 먼저 입력하기를 원할 것입니다.


업데이트 : 여기에 더 완전한 예제와 함께 연주 라이브 사본,이다 :

var element, value, count, i; 

element = document.getElementById("Variable"); 
if (!element) { 
    display("Element 'Variable' not found."); 
} 
else { 
    value = element.value; 
    count = parseInt(value, 10); 
    if (isNaN(count)) { 
    display("'" + value + "' is not numeric"); 
    } 
    else { 
    for (i = 0; i < count; ++i) { 
     display("Loop " + i); 
    } 
    } 
} 

function display(msg) { 
    var p = document.createElement('p'); 
    p.innerHTML = msg; 
    document.body.appendChild(p); 
} 

Live copydisplay 기능은 분명히 당신이 실제로 무엇을위한 자리의 비트입니다 하고 싶다.

0

정확한 질문을 이해하지 못했습니다. 그러나 이것이 당신의 해결책이라고 생각합니다 :

<FORM NAME="myform" ACTION="" METHOD="GET"> 
<INPUT TYPE="text" NAME="inputbox" id="Variable"> 
<input type="button" value="run" onclick="renderIt()" /> 
<P> 
</FORM> 

<script type="text/javascript"> 
function renderIt() 
{ 
var max = parseInt(document.getElementById("Variable").value); 
for (i=0;i<=max;i++) 
{ 
document.write(" " + i); 
document.write("<br />"); 
} 
} 
</script> 
+0

이렇게하면 페이지가 완전히 끊어져서 교체됩니다. 원하는대로 표시 될 수 있습니다. (나는 * 작은 버그 수정의 자유를 가져 왔고, for 루프의 제한 부분에서'm'을'max'로 변경했습니다.) –

관련 문제