通过javascript中的onchange函数传递多个参数

时间:2017-09-07 06:35:13

标签: javascript jquery

我有一个脚本,我在我的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。如何在我的文本字段中添加它并作为第三个参数发送?

2 个答案:

答案 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'])">