Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在动态创建的表单中命名输入元素_Javascript_Html - Fatal编程技术网

Javascript 在动态创建的表单中命名输入元素

Javascript 在动态创建的表单中命名输入元素,javascript,html,Javascript,Html,我对Javascript非常陌生,如果我没有使用正确的术语,那么很抱歉 我有一个可以动态增长的表单。换句话说,我有一些按钮,每当用户单击时,这些按钮都会添加标签和输入字段 在表单的末尾,我希望有一些运行另一个JavaScript函数的“完成”按钮 但是,我注意到所有输入字段都具有相同的id(因为函数每次都使id相同) 访问这些变量的正确方法是什么 下面是动态创建字段的函数。 我还没有编写使用表单的函数 function buildDefaultFields(){ // Define co

我对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"));

}

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

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


希望对您有所帮助。

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

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


希望能有所帮助。

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

startDate.className = 'startDate';
然后使用getElementsByClassName检索它们


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

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

startDate.className = 'startDate';
然后使用getElementsByClassName检索它们


var elements=document.getElementsByClassName('startDate');//然后循环遍历应该可以正常工作的元素

!谢谢,我只是想知道这是否是正确的方法。那应该很好!谢谢,我只是想知道这是否是正确的方式。是否会以任何特定的方式排序?@kamula我猜返回集合中的元素按源顺序排列,但我不能确定。是否会以任何特定的方式排序?@kamula我猜返回集合中的元素按源顺序排列,但我不能肯定。