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

How to get values from dynamically created input box in javascript

本文关键字:输入 获取 动态 javascript 创建      更新时间:2023-09-26

这里我编写了一些代码,用于使用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;

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

但是,当我得到价值的时候,只有第一个价值来了。

请给我一个主意。

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

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

参数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+" ";
}

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

document.getElementsByName("admissiono")

这个方法返回一个可以迭代的元素数组。或者您可以使用访问某些位置

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

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