在我的表格中,我试图在每行的末尾添加一个“编辑”按钮。这个想法是让用户单击其中一个来改变行的内容。我可以很好地构建和填充表格,但我无法通过按钮来解雇它们的处理程序。
以下是代码段:
window.onload = function (){
// a bunch of stuff happens correctly...
while (!Rs.EOF)
{
var oRow = oTicketsTable.insertRow();
for (j=0; j < field.length; j++)
{
var oCell = oRow.insertCell();
oCell.style.fontSize = "10";
oCell.style.fontWeight = "normal";
oCell.style.border = "thin black solid";
oCell.innerText = Rs(field[j]);
}
var oCell = oRow.insertCell();
oCell.style.border = "thin black solid";
var oBtn = document.createElement("button");
oCell.appendChild(oBtn);
oBtn.innerHTML = Rs('idnum');
oBtn.onClick = function () { alert("oBtn.onClick"); }
Rs.MoveNext();
}
Rs.Close ();
delete Rs;
var btn = document.createElement("button");
btn.style.height = "50px";
btn.style.width = "150px";
document.body.appendChild(btn);
btn.innerHTML="button1";
btn.onclick = function() { alert("button1 calling");
}
最后的代码创建了一个测试按钮,它可以正常启动。但是表格中没有任何按钮可以工作。
答案 0 :(得分:0)
表中的onclick函数是camel case:尝试将其更改为小写?将 obtn.onClick 更改为 obtn.onclick 。
oBtn.onclick = function () { alert("oBtn.onClick"); }
答案 1 :(得分:0)
尝试:
oBtn.onclick = function () { alert("oBtn.onClick"); }
Rs.MoveNext();
}
而不是:
oBtn.onClick = function () { alert("oBtn.onClick"); }
Rs.MoveNext();
}
大写的'C',应该只是'c'
答案 2 :(得分:0)
如果我没记错的话,你应该把你的活动放在外面,作为全球性的。
var oBtn,btn;
window.onload = function (){
// other code
// other code
oBtn = document.createElement("button");
oBtn.innerHTML = Rs('idnum');
btn = document.createElement("button");
btn.style.height = "50px";
btn.style.width = "150px";
document.body.appendChild(btn);
btn.innerHTML="button1";
}
// make your event global
oBtn.onClick = function () { alert("oBtn.onClick"); }
btn.onclick = function() { alert("button1 calling"); }
.onClick
是一种古老的做法。但我认为这只会提示你警告,而不是错误。