在使用 JavaScript 删除确认消息之前检查是否选中了复选框

check if checkbox is checked before deleting confirm message using javascript

本文关键字:是否 检查 复选框 JavaScript 删除 消息 确认      更新时间:2023-09-26

我想确保用户在使用javascript获得删除确认消息之前选中了复选框。有人可以告诉我这如何实现吗?

小提琴:

http://jsfiddle.net/ZmMER/

.HTML

<form name="deleteFiles" action="" method="post" >
    <input type='checkbox' name='files' id='1' onsubmit="return confirm_update();" value='1' /> file 1<br>
    <input type="submit" value="Submit" name="submit">
</form>

JavaScript

function confirm_update() {
    var arrCheckboxes = document.deleteFiles.elements["files"];
    if(checkb.checked != true) { 
        alert("You do not have any selected files to delete.");
    } else {
        return confirm("Are you sure you want to proceed deleting the selected   files?");
    }
}

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?");
    }
}

工作演示