添加到表格的按钮赢得了消防处理程序

时间:2014-05-29 23:59:15

标签: javascript button event-handling

在我的表格中,我试图在每行的末尾添加一个“编辑”按钮。这个想法是让用户单击其中一个来改变行的内容。我可以很好地构建和填充表格,但我无法通过按钮来解雇它们的处理程序。

以下是代码段:

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"); 
}

最后的代码创建了一个测试按钮,它可以正常启动。但是表格中没有任何按钮可以工作。

3 个答案:

答案 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是一种古老的做法。但我认为这只会提示你警告,而不是错误。