【发布时间】:2021-12-27 18:28:55
【问题描述】:
我正在尝试获取表格行上新添加的输入字段的 ID。
我这样添加输入字段...
$('#addmore').click(function(){
// Get last id
var lastname_id = $('.tr_input input[type=text]:nth-child(1)').last().attr('id');
var split_id = lastname_id.split('_');
// New index
var index = Number(split_id[1]) + 1;
// Create row with input elements
var html = '<tr><td><input class="form-control" type="number" id="qty_'+index+'" name="qty['+index+']" min="0.01" step="0.01" max="2500" placeholder="0" required /></td><td><input class="form-control pnumber" type="text" id="pnumber_'+index+'" name="pnumber['+index+']" placeholder="Numero del Producto" required /><div style="z-index: 99;" id="suggesstion-box"></div></td><td><input class="form-control" type="number" id="price_'+index+'" name="price['+index+']" min="0.01" step="0.01" max="2500" placeholder="0" required /></td><td><input class="form-control" type="number" id="total_'+index+'" name="total['+index+']" min="0.01" step="0.01" max="2500" placeholder="0" disabled /><td valign="top"><input type="button" name="delete" id="delete_'+index+'" class="btn bg-danger" value="Delete" /></td></tr>';
// Append data
$('#MyTable> tbody:last-child').after(html);
});
这就是我尝试获取 ID 的方式
$(document).ready(function(){
$('.pnumber').keyup(function(){
var id = $(this).attr("id");
console.log(id);
});
});
这适用于原始 HTML 上的输入字段,但不适用于使用 JQuery 函数添加的输入字段。
【问题讨论】:
-
您需要对附加事件后创建的元素使用事件委托。
$(document).on("keyup", ".pnumber", function(){ -
谢谢你的工作
-
另请注意:您不需要 html 元素 ID。如果你认为你做到了,再想一想。 也许你需要一个数据属性,而不是一个 html 元素 ID。