我有一个jquery函数来打开对话框,编辑对话框并将值发送回表格(在html页面中),按下按钮。这些按钮是用JavaScript动态创建的。
场景1:假设我第一次创建了3个按钮,然后单击这三个按钮中的任意一个,然后执行jquery打开对话框,读取值并将它们发送到html表格行。
场景2:现在当我第二次添加更多按钮时,在同一页面中说出第2和第5个按钮,然后在按下这些(第4或第5个)新创建的按钮时,对话框打开读取来自用户,但无法将其发送回html表格行。
如何解决此问题?
Jquery代码:
$(document).on('click', "#opener", function () {
pkg = ($(this).attr('name'));
$("#dialog").dialog("open");
$("#dialog").fadeOut(3000).html(data);
});
填充表格行的功能(要填充的行号从js传递为pkg)
function PopulateForm(){
document.getElementById("weight" + pkg).value=document.getElementById("wt").value;
document.getElementById("length" + pkg).value=document.getElementById("lgt").value;
document.getElementById("width" +
pkg).value=document.getElementById("wdt").value;
document.getElementById("height" + pkg).value=document.getElementById("ht").value;
$( "#dialog" ).dialog( "close" );
}
错误表示第4或第5按钮pkg值未通过。
js函数动态创建按钮:
var cell6 = row.insertCell(5);
var element5 = document.createElement("input");
element5.type = "button";
element5.setAttribute('id', 'opener');
element5.setAttribute('name', (rowCount+1));
element5.value = 'X';
cell6.appendChild(element5);
答案 0 :(得分:-1)
您可以使用属性"class"
代替"id"
来动态创建按钮并将其绑定到事件
另外,请确保您正在重新加载JavaScript
以及页面的重新加载部分