onsubmit
行动应该在场上而form
不是在checkbox
场上。
其次,您的checkbox
元素被分配给变量arrCheckboxes
,而在if
循环中您正在使用checkb
.
修改后的代码如下:
HTML:
<form name="deleteFiles" action="" method="post" onsubmit="return confirm_update();">
<input type='checkbox' name='files' id='1' value='1' />file 1
<br>
<input type="submit" value="Submit" name="submit">
</form>
JS:
function confirm_update() {
var arrCheckboxes = document.deleteFiles.elements["files"];
if (arrCheckboxes.checked != true) {
alert("You do not have any selected files to delete.");
return false;
} else {
return confirm("Are you sure you want to proceed deleting the selected files?");
}
}
编辑:如果您的表单有多个checkbox
字段并且您只想在没有选择任何字段时抛出错误(我认为您想要)。你可以这样做:
HTML:
<form name="deleteFiles" action="" method="post" onsubmit="return confirm_update();">
<input type='checkbox' name='files' id='1' value='1' />file 1
<input type='checkbox' name='files' id='2' value='2' />file 2
<br>
<input type="submit" value="Submit" name="submit">
</form>
JS:
function confirm_update() {
var chkCount = 0;
var arrCheckboxes = document.deleteFiles.elements["files"];
for (var i=0; i<arrCheckboxes.length; i++) {
if(arrCheckboxes[i].checked == true) {
chkCount++;
}
}
if (chkCount === 0) {
alert("You do not have any selected files to delete.");
return false;
} else {
return confirm("Are you sure you want to proceed deleting the selected files?");
}
}
工作演示