以动态创建的形式命名输入元素

时间:2013-07-30 16:11:10

标签: javascript html

我是Javascript的新手,如果我没有使用正确的术语,那就很抱歉。

我有一个可以动态增长的表单。换句话说,我有按钮,只要用户点击它就会添加标签和输入字段。

在表单的最后,我想要一些运行另一个JavaScript函数的“完成”按钮。

但是我注意到所有输入字段都具有相同的id(因为该函数每次都使id相同)。

访问这些变量的正确方法是什么?

以下是动态创建字段的功能。 我还没有编写使用该表单的函数。

function buildDefaultFields(){
    // Define container
    var chargeItem_container = document.getElementById("chargeItem_container");
    // INPUT Start Date
    chargeItem_container.appendChild(document.createTextNode('Start Date: '));
    var startDate = document.createElement("input");
    startDate.type = 'date';
    startDate.name = 'startDate';
    startDate.id = 'startDate';
    chargeItem_container.appendChild(startDate);
    chargeItem_container.appendChild(document.createElement("br"));

}

2 个答案:

答案 0 :(得分:2)

如果不能唯一地标识单个元素,请使用id,而不是使用类

startDate.className = 'startDate';

然后使用getElementsByClassName来检索它们

var elements = document.getElementsByClassName('startDate'); //然后循环遍历元素

答案 1 :(得分:1)

您应该动态添加元素,以便每个元素都获得一个新ID。您可以使用简单的计数器附加到您的ID名称。

例如,如果您保留全局var count = 0,那么您的第一个ID可能是'startDate-' + count startDate-0,然后在count上执行增量,以便下次添加元素时,它将获得ID 'startDate-' + count = startDate-1

希望有所帮助。