我只是想完全理解一个错误,因为有时我可以绕过它,有时却不能。我尝试过只编写一个函数:
function toggleButton() {
}
但我遇到了同样的错误。这是 .js 示例。
var checkBox = document.getElementById("chkMyBox");
checkBox.onclick = function toggleButton(e, obj1)
{
var btnElement = document.getElementById("btnMyButton");
if(btnElement != null) {
alert("Element not null");
if(e.target.checked && obj1 != null) {
alert("Checking check " + obj1.checked);
if(obj1.checked == true && btnElement.getAttribute('disabled') == false){
btnElement.getAttribute('disabled') = false;
} else {
btnElement.getAttribute('disabled') = true;
}
}
}
}
这是 html:
<form id="frmCheckBox">
<input type="checkbox" id="chkMyBox" />
<button id="btnMyButton" disabled>I'm a Button</button>
</form>
最佳答案
更改使用name
的这一行:
<input type="checkbox" name="chkMyBox" />
改为使用id
:
<input type="checkbox" id="chkMyBox" />
或者您可以使用:
var elements = document.getElementsByName('chkMyBox');
var element = elements[0]; //first element with that name in the array
或
var element = document.getElementsByName('chkMyBox')[0];
更新(因为OP更改了原始问题的代码):
function toggleButton(e, obj1)
这不起作用,因为回调函数只有一个参数 (e
)。
使用 e.target
获取元素。
关于JavaScript 'function undefined' 使用 jsfiddle 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17658700/