如何从Javascript中的appendchild复选框中获取元素状态?

时间:2012-01-26 20:53:32

标签: javascript html forms

我正在通过appendchild创建复选框。我希望能够检查他们的状态。我知道格式应该是document.form.checkboxname.value,但无论我使用它的表单名称或复选框名称的组合都没有给我回复。

        var myParagraph=document.getElementById("myLine");
            myForm = document.createElement("FORM");
            myForm.setAttribute("name", "myForm2");
            mytable = document.createElement("TABLE");

        var CB_Delete = document.createElement('input');
            CB_Delete.type = "checkbox";
            CB_Delete.name = "CB_Test";
            CB_Delete.setAttribute("name", "CBTest2");
            CB_Delete.value = 2; 
            CB_Delete.onclick = answer;
            theCell.appendChild(CB_Delete);

总结一下,如果选中复选框,我希望答案功能给我一个提醒。非常感谢! 要澄清我在警报(document.form.checkbox.value)中替换表格和复选框的内容是什么?

1 个答案:

答案 0 :(得分:3)

CB_Delete.checked应该有效。请参阅HTMLInputElement on MDN

console.log(CB_Delete.checked);

jsFiddle Demo


  • 要选中或取消选中复选框,您可以分别执行CB_Delete.checked = trueCB_Delete.checked = falsechecked是一个对象属性,应该具有布尔值。 CB_Delete.checked只是查询其当前值。

  • 在事件处理函数中,您可以将当前处理事件的元素引用为this。所以从我以前的jsFiddle的例子中可以看出:

    CB_Delete.onchange = function () {
        console.log(this.checked); /* this refers to the checkbox here */
    };
    

    您也可以在this功能中使用answer

  • 您可以阅读有关handling events on Quirksmode

  • 的更多信息
  • 注意:使用CB_Delete.onchange是一种非常古老的,并不是建议在大多数情况下附加事件处理程序的方法。使用CB_Delete.addEventListener('change', answer, false)是正确的方法。较旧的IE将会出现问题,但它们会有attachEvent()。您可以阅读this technique and why to use it on Quirksmode(该文章为3年,在阅读"Unfortunately few browsers support it at the moment."等内容时会考虑到这一点。要隐藏浏览器差异,您可以使用jQuery等库。