如何在javascript中从动态创建的输入框中获取值

时间:2014-04-11 12:03:38

标签: javascript dom

这里我编写了一些代码,用于使用javascript

从动态创建的输入框中获取值

以下是设置值的代码:

    for(var i=0;i<result.studentlist.length;i++){


     var addtxt = document
                                        .createElement("input");

                                        addtxt.type = "text";
                                        addtxt.name = "admissionno" ;
                                        addtxt.id = "admissionno" ;
                                        addtxt.value = result.studentlist[i].admissionno;

}            

获得目的写在代码下面:

var admissionNumber=document.getElementById("admissionno").value;

实际上附加了两个入场号码。

但是,当我在那个时候获得价值时,只会有第一个值。

请给我一个主意。

4 个答案:

答案 0 :(得分:1)

document.getElementById("admissionno")将始终为您提供单个元素,因为ids是唯一的,并且该函数还返回单个DOM元素。

您应该添加类,并像document.getElementByClassName("classname")一样使用它们。它将返回一个节点列表,您可以通过它进行迭代。

答案 1 :(得分:1)

参数ID必须是唯一的。解决方案将是:

代:

for(var i=0;i<result.studentlist.length;i++){
    var addtxt = document.createElement("input");
    addtxt.type = "text";
    addtxt.name = "admissionno" ;
    addtxt.id = "admissionno"+i ;
    addtxt.value = result.studentlist[i].admissionno;
} 

收集数据(假设您想要将所有数据放在一起):

var inputs=document.getElementsByName("admissionno");
var admissionNumber="";
for (var j=0;j<inputs.length;j++) {
    admissionNumber+=inputs[j].value+" ";
}

答案 2 :(得分:0)

我会将输入元素放在一个表单中以同时获取多个值。 此外,如果我没有弄错你正在用你的代码创建重复的id。 你想要的是:

document.getElementsByName("admissiono")

此方法返回一个可以迭代的元素数组。 或者您可以通过以下方式访问某些职位:

document.getElementsByName("admissiono")[0].value

答案 3 :(得分:0)

HTML元素id应该是唯一的。我想你应该首先给元素赋予不同的ID。然后获取它们的每个值。