我有一个表单,用户按下按钮并动态生成一行表,其中包含3列。 每个生成的行都会添加到表中,并具有以下格式:
<tr id="1" class="">
<td>
<select id="cmb_articulo_1" name="articulo[]">
</td>
<td>
<input type="text" id="txtcantidad_1" name="txtcantidad[]">
</td>
<td>
<input type="text" id="txtprecio_1" name="txtprecio[]">
</td>
<td>
<select id="cmb_descuento_1" name="descuento[]">
</td>
</tr>
生成的行的每个元素都添加了与生成的行(id="cmb_articulo_1", id="cmb_articulo_2", id="cmb_articulo_3",..)
用户可能已经生成了n行,问题在于我无法确定如何识别选择哪个行的选项以及如何处理该选项。
如何处理所选择的选项,例如,当我选择id = "combo"
时,我可以使用$("#combo").change(function{ . . . })
处理所选选项,但在我提出的情况下,可能有动态创建的1,2,5,10,20等行,因此我无法像前一种情况那样处理所选的选项。我知道必须有一种方法可以在任意行的选择中处理所选择的选项,从而对该元素进行动态引用。
拜托,请帮助我进行这两次咨询?从现在开始,非常感谢你。
答案 0 :(得分:0)
向表中的所有<select>
元素添加一个类:
<select class="cmb_articulo" id="cmb_articulo_1" name="articulo[]">
然后使用event delegation能够绑定动态插入的元素:
$(document).on('change', '.cmb_articulo', function () {
var $select = $(this);
var $row = $select.closest('tr');
var id = $row.attr('id');
// You have the ID now, do whatever you need to.
});