使用具有相同ID的多个文本字段的Jquery函数

我寻求有关如何使用javascript生成的jquery引用特定文本字段的帮助。

我得到的仅适用于字段引用的第一个实例。

HTML代码:

Record ID Qty Per Box 

Javascript用于生成更多像上面一样的行

   function addRow(tableID) { var table = document.getElementById(tableID); var rowCount = table.rows.length; var row = table.insertRow(rowCount); var colCount = table.rows[0].cells.length; for(var i=0; i<colCount; i++) { var newcell = row.insertCell(i); newcell.innerHTML = table.rows[0].cells[i].innerHTML; //alert(newcell.childNodes); switch(newcell.childNodes[0].type) { case "text": newcell.childNodes[0].value = ""; break; case "checkbox": newcell.childNodes[0].checked = false; break; } } } function deleteRow(tableID) { try { var table = document.getElementById(tableID); var rowCount = table.rows.length; for(var i=0; i<rowCount; i++) { var row = table.rows[i]; var chkbox = row.cells[0].childNodes[0]; if(null != chkbox && true === chkbox.checked) { if(rowCount <= 1) { alert("Cannot delete all the rows."); break; } table.deleteRow(i); rowCount--; i--; } } }catch(e) { alert(e); } }  

所以我最终得到的是具有相同id / name的多行。 我只想validationkeyup上的输入,所以我决定使用(this).val方法,但它只适用于第一行。

  $(document).ready(function() { $("#ri1").keyup(function() { $(this).val($(this).val().replace(/[^\d]/g, "")); }); });  

有人知道在以这种方式生成多行输入字段时validation输入的更好解决方案吗?

Js小提琴http://jsfiddle.net/nS2LM/22/

建议不要多次使用ID,但如果您使用的是最新的jQuery,那么事件委托就是您的答案:

    

上面的代码将keyup绑定到body的子.do_stuff元素,因此任何动态创建的具有.do_stuff类的元素都将被keyup事件捕获。