如何在html name="“中增加一个数组,该数组放在jQuery .after()中?
像这样的
$(document).ready(function() {
$('#add_products').click(function() {
$('.products_tr:last').after('<tr class="products_tr"><td><input id="quantity" class="form-control" type="text" value="" name="invoice[products_attributes][1][quantity]"></td></tr>');
});
});它应该向发票中添加额外的行,并且它可以工作,但是为了将它正确地保存到数据库中,name="invoice[products_attributes][1][quantity]内部的'1‘需要增加。它需要根据最后一个值进行增量。
该代码是由Rails动态创建的。
有人知道怎么做到这一点吗?我会很感激你的帮助!
发布于 2016-08-24 10:43:43
获取总行(作为索引从0开始,因此不需要添加1),以便为新生成的行获得新的索引,并使用class="quantity"作为id必须是唯一的,
$(document).ready(function() {
$('#add_products').click(function() {
l=$('.products_tr').length;// to get total
$('.products_tr:last').after('<tr class="products_tr"><td><input '+
' class="quantity" class="form-control" type="text" value="" '+
' name="invoice[products_attributes]['+l+'][quantity]"></td></tr>');
});
});正如@Pete所评论的,如果您有一个delete按钮,然后使用一个全局变量并添加它,
$(document).ready(function() {
var counter = $('.products_tr').length; // initially it is equal to length of all rows, let it start from 0
$('#add_products').click(function() {
$('.products_tr:last').after('<tr class="products_tr"><td><input '+
' class="quantity" class="form-control" type="text" value="" '+
' name="invoice[products_attributes]['+counter+'][quantity]"></td></tr>');
counter++;
});
});https://stackoverflow.com/questions/39121030
复制相似问题