2011-05-14 63 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”。