我收到错误“无法获取属性的值'已检查'。对象为空或未定义。”单击复选框时。
表单的名称是'test',我想根据要检查的第一个复选框显示更多输入字段,如果它们经过它,那么我不希望显示其他字段。
这是脚本:
function showhidefield()
{
if (document.test.submode.checked) {
document.getElementById("hideablearea").style.display = "block";
} else {
document.getElementById("hideablearea").style.display = "none";
}
}
这是我的输入行:
<input type="checkbox" name="submode" onclick="showhidefield()">
有没有办法让我的JS更加扎实,以便在其他网页和任何浏览器上运行?
答案 0 :(得分:1)
在复选框上输入ID,然后使用getElementById
。这比其他方法更可靠,因为ID必须是唯一的。
答案 1 :(得分:0)
页面上不会总是有<form>
,名称为"test"
。
通过使用this
引用当前元素,您可以使其无ID工作:
<input type="checkbox" name="submode" onclick="showhidefield(this, 'hideablearea')">
JavaScript的:
function showhidefield(element, id)
{
var node = document.getElementById(id);
if (node) {
node.style.display = element.checked ? 'block' : 'none';
}
}
该函数的第一个参数是复选框本身,第二个参数是您希望显示或隐藏的元素的ID。