在勾选复选框之前,jquery不提交表单

时间:2014-05-15 14:02:15

标签: javascript jquery html forms validation

您好我已经插入了一些jquery以验证某个表单上的复选框,我在我的jsFIddle上做了一个简单的示例但是如果未单击该复选框,表单仍会提交,但是警告仍然显示。

如果未勾选复选框,如何停止提交?我的代码位于下方或查看我的jsFIddle

$(document).ready(function () {

var check;

$("#test-with-prop").on("click", function () {
    if ($("input[id=test]").is(":checked")) {
        check = $("#mycheckbox").prop("checked");
        if (!check) {
            alert("Please confirm that you have read and understood the charging agreement between yourself, and .");
        } 
    }
});
});

4 个答案:

答案 0 :(得分:4)

您应该按照here所述使用$ .on('submit')。

例如:

$(document).ready(function () {
    var $form = $('#form-id');
    var $checkbox = $('#mycheckbox');

    $form.on('submit', function(e) {
        if(!$checkbox.is(':checked')) {
            alert('Please confirm!');
            e.preventDefault();
        }
    });
});

这是working example

答案 1 :(得分:1)

仅添加e.preventDefault();并取消提交:

 // Example 3 - With jQuery prop  
    $("#test-with-prop").on("click", function (e) {
        if ($("input[id=test]").is(":checked")) {
            check = $("#mycheckbox").prop("checked");
            if (!check) {
                alert("Please confirm");
                e.preventDefault(); // add this line
            } 
        }
    });

答案 2 :(得分:1)

$('#test-with-prop').click(function () {
            if ($('#mycheckbox').is(":checked")) {
                return true;
            }
            else {
                alert("Checkbox is not selected");
                return false;
            }
        });

答案 3 :(得分:0)

你可以试试这个。并使用输入类型为按钮而不是类型=“提交”....

$("#test-with-prop").on("click", function () {
        if ($("input[id=test]").is(":checked")) {
            check = $("#mycheckbox").prop("checked");
            if (!check) {
                alert("Please confirm that you have read and understood the charging agreement between ");
            } else{
                $("#form").submit();
            }
        }
    });