2

我在 jQuery 中使用自动完成插件,并且我创建了一个方法,该方法附加在自动完成结果中选择的元素。

$("#buscar").autocomplete({
source: "procesos/buscarPersona.php",
minLength: 2,
select: function(event, ui ){
    var name = ui.item.value;
    var id = ui.item.id_persona;
    $("#acreditados tbody").append('<tr id='+id+'><td>'+name+'<td><td>Monto: $<input name="monto_'+id+'" type="text" /><img id="delete_'+id+'" src="img/ico-delete.gif" /></td></tr>');
}
});

如您所见,我的代码将输入元素附加到我的页面。然后在其他方法中,我想对先前添加的输入中的值进行操作。

$("#tablaAm").click(function(){
    var montoTotal = 0;
    $("input[name^='monto_']").each(function(index){
        alert(index + ': ' + $(this).val());
    });
    });

问题是 .each() 不适用于这个新元素。我尝试了 .each() 用于加载页面时存在的输入并且我没有问题,问题是加载后附加的元素。

我怎样才能使这项工作?我尝试了 live() 方法,但我认为 .each 不是一个事件。

4

1 回答 1

2

您正在设置名称属性而不是 id。

它应该是:

$('input[name^="monto_"]')
于 2012-04-27T22:29:12.103 回答