Javascript 未捕获引用错误:未定义parentsCheck
我对JS非常陌生,但我正在尝试创建一个复选框,当选中该复选框时,将显示一个id为“second_row”的div,当未选中该复选框时,将隐藏它(默认情况下未选中)。我丢失了一些代码吗?我的语法不正确吗?我真的需要一些帮助。谢谢你帮了一个新手的忙 Html:Javascript 未捕获引用错误:未定义parentsCheck,javascript,html,Javascript,Html,我对JS非常陌生,但我正在尝试创建一个复选框,当选中该复选框时,将显示一个id为“second_row”的div,当未选中该复选框时,将隐藏它(默认情况下未选中)。我丢失了一些代码吗?我的语法不正确吗?我真的需要一些帮助。谢谢你帮了一个新手的忙 Html: JavaScript: <script> function parentsCheck() { var check1 = document.getElementById('under_18'), if (chec
JavaScript:
<script>
function parentsCheck()
{
var check1 = document.getElementById('under_18'),
if (check1.checked === true) {
document.getElementById('second_row').style.display = 'block';
}
else if (check1.checked === false) {
document.getElementById('second_row').style.display = 'none';
}
}
</script>
函数parentsCheck()
{
var check1=document.getElementById('under_18'),
如果(check1.checked==true){
document.getElementById('second_row')。style.display='block';
}
else如果(check1.checked==false){
document.getElementById('second_row')。style.display='none';
}
}
注意:不知道这是否重要,但复选框位于表格单元格中。使用事件处理程序属性时,使用JavaScript。尝试在JavaScript中定义事件处理程序,它还有以下优点:
var el=document.getElementById('under_18');
el.onclick=parentsCheck;// 在var
语句末尾的,
应该是代码>
它会导致一个SyntaxError
,导致JavaScript块被有效地忽略,因此从未定义parentsCheck()
var check1 = document.getElementById('under_18');
另外,check1.checked
将始终返回一个布尔值,因此您不需要进行==true
和==false
比较;以下方法可以很好地工作:
function parentsCheck()
{
var check1 = document.getElementById('under_18');
if (check1.checked) {
document.getElementById('second_row').style.display = 'block';
} else {
document.getElementById('second_row').style.display = 'none';
}
}
你应该养成一种习惯,让浏览器的控制台保持打开状态(按F12键查看),并在那里查找错误——它会立即显示语法错误。比在这里询问要快得多!:-)公平地说,你对“奇怪的范围界定问题”的看法非常模糊;JavaScript有很好的定义范围,事件处理程序只有在全局范围内才能工作,这一点也不奇怪。不过,你已经纠正了这一点,我会给你一个+1来抵消-1。@Matt这是我的假设,至于我为什么会被否决。我不明白为什么有人会把不明确等同于错误。无论如何,谢谢你的投票!感谢您的快速响应,将逗号替换为分号非常有效。(爱那些微小的东西让我冒烟……)同样,谢谢你告诉我复选框是布尔值,这会很有用的。
var check1 = document.getElementById('under_18');
function parentsCheck()
{
var check1 = document.getElementById('under_18');
if (check1.checked) {
document.getElementById('second_row').style.display = 'block';
} else {
document.getElementById('second_row').style.display = 'none';
}
}