2011-05-14 67 views
0

我是新來的javaScript,我有很多麻煩與它..這個程序背後的一般想法是,用戶在6個文本框中輸入一些值,並在提交後,那些在文本結果框中顯示爲concatecated。但是到目前爲止,文本框中沒有任何價值,我不知道錯誤是什麼......任何人都可以請我指出正確的方向嗎?Javascript陣列加入()和getelementbyid錯誤

<html> 

<head> 
    <script type="text/javascript"> 
     function concatetext(array) 
     { 
      var n = new Array[]; 
      for (var i=0; i<f['array[]'].length; ++i) 
      { 
       n[x] = document.forms["form1"].elements["array" + x].value; 
      } 
      document.getElementById('textresult').innerHTML = n.join(); 
     } 
    </script> 
</head> 

<body> 

    <form id="form1" onsubmit="concatetext(text)"> 
     text 1:<input type="textbox" name="text[]" size="16 px" /> 
     <br /> 
     text 2:<input type="textbox" name="text[]" size="16 px" /> 
     <br /> 
     text 3:<input type="textbox" name="text[]" size="16 px" /> 
     <br /> 
     text 4:<input type="textbox" name="text[]" size="16 px" /> 
     <br /> 
     text 5:<input type="textbox" name="text[]" size="16 px" /> 
     <br /> 
     text 6:<input type="textbox" name="text[]" size="16 px" /> 
     <br /> 
     <input type="submit" value="Submit" name="submit" /> 
     <br /><br /> 
     text Result:<input type="textbox" id="textresult" size="35 px" /> 
     <br /> 

    </form> 
</body> 

</html> 
+0

什麼是f和x? – DrStrangeLove 2011-05-14 19:09:04

+0

什麼'f ['array []']' – Raynos 2011-05-14 19:09:23

+0

請使用'id'屬性而不是'name'屬性。你以後會感謝我。 – 2011-05-14 20:10:53

回答

0
var text = ""; 
$("#form1 input").each(function() { 
    text += $(this).val(); 
}); 
$("#textresult").val(text); 

使用jQuery

使用原始的javascript:

var text = ""; 
var inputs = document.getElementsByName("text[]"); 
for (var i = 0, ii = inputs.length; i < ii; i++) { 
    text += inputs[i].value; 
} 
document.getElementById("textresult").value = text; 

Live example

+0

感謝您的輸入,但問題仍然存在..它仍然不會在文本框中顯示結果。 – user753918 2011-05-14 19:44:06

+0

@ user753918請務必使用'.value = text',它可能不會在IE8中工作 – Raynos 2011-05-14 19:47:43

+0

既然'querySelectorAll'是'getElementsByTagName'的有用替代方法嗎?自從什麼時候全球支持'Array.forEach'? – Zirak 2011-05-14 19:53:53

0

要設置<input>你不使用 「的innerHTML」 的內容,您可以使用「價值」:

document.getElementById("textresult").value = text; 

此外,「大小」屬性應該只是「35」,否則你可以給它一個「樣式」與「寬度:35px」。 「size」屬性以「em」單位設置大小(我認爲),所以如果你想用35像素代替「style」。