Javascript复选框检查

Javascript复选框检查,javascript,checkbox,Javascript,Checkbox,我想使用Javascript检查复选框是否已选中,如果复选框未选中,则提交表单在选中之前不会继续。下面是我的代码 <SCRIPT language=javascript> function checkAcknowledgement(checkbox){ alert(checkbox.toString()); if (checkbox.checked == false){ alert('Please read through the acknowledg

我想使用Javascript检查复选框是否已选中,如果复选框未选中,则提交表单在选中之前不会继续。下面是我的代码

<SCRIPT language=javascript>
function checkAcknowledgement(checkbox){
    alert(checkbox.toString());
    if (checkbox.checked == false){
        alert('Please read through the acknowledgement and acknowledge it.');
        return false;
    } else {
        return true;
    }
}
</script>

<form action="ioutput.php" method="POST">
    <input name="form" type="hidden" id="form" value="true">
    ... some html form ...
    <input type="checkbox" id="acknowledgement" value="1" /><br><br>
    <input type="submit" value="submit" onclick="return checkAcknowledgement(this)"/>
</form>

功能检查确认(复选框){
警报(checkbox.toString());
如果(checkbox.checked==false){
警报('请通读确认书并予以确认');
返回false;
}否则{
返回true;
}
}
... 一些html表单。。。



无论是否选中表单,它都会返回一条警告消息,指出该表单尚未被选中,尽管我手动进行了检查。如何修复它?

您必须将事件绑定到表单,而不是“提交”按钮。此外,如果要提交复选框输入,请附加名称而不是ID:

<input type="checkbox" name="acknowledgement" value="1" /><br><br>
<form action="ioutput.php" method="POST" onsubmit="return checkAcknowledgement(this)">

您正在检查是否选中了submit按钮,而它自然永远不会选中

将表单发送到函数,而不是提交按钮本身:

<input type="submit" value="submit" onclick="return checkAcknowledgement(this.form)"/>

您需要在复选框上输入名称才能找到它:

使用表单引用访问复选框:

<script type="text/javascript">

function checkAcknowledgement(frm){
  var checked = frm.acknowledgement.checked;
  if (!checked){
    alert('Please read through the acknowledgement and acknowledge it.');
  }
  return checked;
}

</script>

功能检查确认(frm){
var检查=frm.Acknowledge.checked;
如果(!选中){
警报('请通读确认书并予以确认');
}
退货检查;
}

因为您在单击“提交”按钮时添加了该函数,“this”的值不是指您希望在函数中接收该函数的复选框。您可以用document.getElementById('Acknowledge')替换“this”

注意,如果您添加了返回函数,并在submit按钮not on复选框上传递“this”,那么条件“checkbox.checked==false”应用于submit按钮not复选框,Rob W解决方案将解决您的问题:)
<script type="text/javascript">

function checkAcknowledgement(frm){
  var checked = frm.acknowledgement.checked;
  if (!checked){
    alert('Please read through the acknowledgement and acknowledge it.');
  }
  return checked;
}

</script>