0

我想确保用户在使用 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?");
    }
}
4

1 回答 1

1

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

工作演示

于 2013-09-18T11:32:18.883 回答