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