Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获引用错误:未定义parentsCheck_Javascript_Html - Fatal编程技术网

Javascript 未捕获引用错误:未定义parentsCheck

Javascript 未捕获引用错误:未定义parentsCheck,javascript,html,Javascript,Html,我对JS非常陌生,但我正在尝试创建一个复选框,当选中该复选框时,将显示一个id为“second_row”的div,当未选中该复选框时,将隐藏它(默认情况下未选中)。我丢失了一些代码吗?我的语法不正确吗?我真的需要一些帮助。谢谢你帮了一个新手的忙 Html: JavaScript: <script> function parentsCheck() { var check1 = document.getElementById('under_18'), if (chec

我对JS非常陌生,但我正在尝试创建一个复选框,当选中该复选框时,将显示一个id为“second_row”的div,当未选中该复选框时,将隐藏它(默认情况下未选中)。我丢失了一些代码吗?我的语法不正确吗?我真的需要一些帮助。谢谢你帮了一个新手的忙

Html:


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';
    }
}