2

我想动态添加文本框,然后将这些文本框中写入的值传递给
数组。这是我的代码。

    function add(type)
 {
    a=new Array();
    for(c=0;c<3;c++)
        {
           var element = document.createElement("input");
           element.setAttribute("type", type);
           element.setAttribute("value", type);
           element.setAttribute("name", type);
           element.setAttribute("id", 'n'+c);
           var foo = document.getElementById("fooBar");
           a[i]=document.getElementById('n'+c);
           foo.appendChild(element);

        }
  }
    </SCRIPT>
    </HEAD>
    <BODY>
    <FORM>

    <SELECT name="element">
    <OPTION value="button">Button</OPTION>
      </SELECT>
     <INPUT type="button" value="Add" onclick="add(document.forms[0].element.value)"/>
     <span id="fooBar">&nbsp;</span>

谢谢....

4

3 回答 3

3

来试试这个!!!

var a= [];
function add(type) {
for(c=0;c<3;c++){
var element = document.createElement("input");
element.setAttribute("type", type);
element.setAttribute("value", type);
element.setAttribute("name", type);
element.setAttribute("id", 'n'+c);
var foo = document.getElementById("fooBar");
foo.appendChild(element);
a[c]=document.getElementById('n'+c).value;
}
}
function show(){
for(c=0;c<3;c++){
alert(a[c]);
}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM>
<SELECT name="element">
<OPTION value="text">Text</OPTION>
</SELECT>
<INPUT type="button" value="Add" onclick="add(document.forms[0].element.value)"/><br>
<INPUT type=button  name="b1" value="Show" onclick="show()"/><br>
<span id="fooBar">&nbsp;</span> 
于 2013-08-17T10:14:36.550 回答
2

试试这个

HTML

<form>
    <select name="element">
        <option value="button">Button</option>
    </select>
    <input type="button" value="Add" onclick="add(document.forms[0].element.value)"/>
    <span id="fooBar">&nbsp;</span>
</form>

JS

function add(type)
 {
    a=new Array();
    for(c=0;c<3;c++)
        {
           var element = document.createElement("input");
           element.setAttribute("type", "text");
           element.setAttribute("value", type);
           element.setAttribute("name", "mytextbox");
           element.setAttribute("id", 'n'+c);
           var foo = document.getElementById("fooBar");
           foo.appendChild(element);
           a[c]=document.getElementById('n'+c).value;

        }
  }

工作JSBin示例

http://jsbin.com/EPOtuno/1/edit

于 2013-08-17T09:37:01.117 回答
0

我想问题是在你调用之前元素不是文档的一部分,foo.appendChild(element);这样做document.getElementById('n'+c);不会返回任何东西。但是,无论如何,这完全没有必要。如果它文档的一部分,它将document.getElementById('n'+c);完全返回您已经引用的内容element,因此您应该能够做到:

a[c] = element;
于 2013-08-17T09:20:53.940 回答