2012-04-27 139 views
2

我在jQuery中使用了自動完成插件,我創建了一個方法來顯示在自動完成結果中選擇的元素。每個附加元素上的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不是一個事件。

回答

2

您正在設置name屬性而不是id。

它應該是:

$('input[name^="monto_"]') 
+0

這不是問題,我忘了更改提交我的問題時,但實際上卻是「name」屬性,我試圖 – 2012-04-27 22:32:07

+0

啊,OK,然後編輯你的問題; )我不知道它是否重要,但是你是否試圖從**「**變成**」**,就像它在我的回答中那樣? – 2012-04-27 22:34:18

+0

我的不好,你是對的,這是正確的答案!謝謝 – 2012-04-27 22:36:10