我有一个带有复选框的表单,在某些情况下显示。我想检查复选框是否仅在它显示的情况下被选中,对于其他情况我希望单击提交按钮提交表单。我编写了以下函数,但它不起作用:
function checkTheBox() {
window.onload = function() {
var visible = document.getElementById("checkbox").isDisplayed();
if(!visible)
return true;
else if(visible){
var checkbox = document.getElementById("checkbox");
if(checkbox.checked)
return true; }
else{
alert('You must agree to the terms first.');
return false;
}
}; }
这些是我的html元素:
<div class='input-block' id='div_checkbox' style='display: none;'>
<input type="checkbox" id="checkbox" name="checkbox" value="0">
<b>I agree to all terms and conditions</b><br />
</div>
我做错了什么?
答案 0 :(得分:0)
您必须检查该元素是否为undefined
:
但请注意,用户可以通过控制台删除您的复选框,并且无需选中复选框即可提交表单。
此外,您不必使用window.onload = function() { ... }
,只需使用此代码并在表单提交时调用函数checkTheBox
:
function checkTheBox() {
if (document.getElementById("checkbox") === 'undefined') {
return true;
}
else {
var checkbox = document.getElementById("checkbox");
if (checkbox.checked) {
return true;
}
else {
alert('You must agree to the terms first.');
return false;
}
}
}
但正如@ADyson所说,始终在服务器端验证您的数据。