我有一个脚本,我在我的html中附加一个表行(在行内有一个文本字段)
$('#resulttable').append('<tr><td>'+this.id+'</td><td>'+ this.customer_name + '</td><td>'+ this.total +'</td>'+'<td><input type = "text" id ='+this.id+' name = "paid" onChange="change_send(this.value, this.id);"></td></tr>');
这个iam向我的change_send函数发送了两个参数。我想要一些更多的参数,例如this.bill_id。如何在我的文本字段中添加它并作为第三个参数发送?
答案 0 :(得分:1)
我会避免使用这种方式添加处理程序。我建议您使用事件委托和data- *属性来存储所需的信息。
//Event has to be declared only once, it will work on all rows.
$('#resulttable').on('change','input',function(e){
change_send(this.value, this.id, $(e.target).data('bill_id'));
});
$('#resulttable').append('<tr><td>'+this.id+'</td><td>'+ this.customer_name + '</td><td>'+ this.total +'</td>'+'<td><input type="text" id='+this.id+' name="paid" data-bill_id="'+this.bill_id+'"></td></tr>');
这样,您可以为输入添加更多数据,并让您的功能接收它。还有其他方法,但这似乎是现在最简单的方法。
答案 1 :(得分:0)
您可以使用例如数据属性,因此您的输入应如下所示:
<input type="text" id='1' name="paid" data-billid="12" onChange="change_send(this.value, this.id, this.data, this.dataset['billid'])">