在创建新表行时添加输入名称

时间:2009-12-22 19:37:09

标签: javascript jquery

我已经为客户提供了一份订单,您可以查看here

如您所见,它会创建一个包含5个输入字段的新行(每行)。这是我的问题,我将此表单以html格式输出到客户电子邮件供办公室使用。我需要为新创建的行中的每个输入添加一个“唯一名称”,以便将其传递给处理和发送到电子邮件。

Here is the JS file for adding rows

我知道这必须由$ addRowBtn触发,但我现在已经有一段时间了,我尝试过的所有内容都打破了表格。

我试过这个例子,但无济于事:

thisRow.find("input.ClassName").attr("name","newName" + num);
num++;

我会买第一个帮助这杯咖啡的人!它正在惹恼我的生活垃圾!!

2 个答案:

答案 0 :(得分:0)

在你的javascript中你设置thisRow如下

thisRow = $(this).parents("tr");

但它应该是

thisRow = $(this).parents("tr").eq(0);

然后你可以做

thisRow.find("input").each(function(i) {
 $(this).attr("name", "newName" + i);
});

同时检查这返回警报的内容(thisRow.find(“input”)。length);它应返回5,因为行中有5个输入元素。 我希望它有效。

答案 1 :(得分:0)

看看这个,我可以看到这是附加到“删除行”功能。不应该在“添加行”功能上触发。我会给它旋转,看看会发生什么。

此外,因为每一行都有一个唯一的标识符(orderType,sample,pattern等),所以当创建一个新行时,每个输入都会递增,我可以为每个输入分配一个如下的起始值:

input class="order_type" name="orderType[i]" type="text"

我不能只为五个输入中的每个输入设置一个数组并循环直到它达到“最大行数”为6?

我只是不知道如何将值“i”推到每行新创建的输入上。