Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查表单中是否至少选中了一个复选框?_Javascript_Jquery - Fatal编程技术网

Javascript 如何检查表单中是否至少选中了一个复选框?

Javascript 如何检查表单中是否至少选中了一个复选框?,javascript,jquery,Javascript,Jquery,我有4个复选框字段的表单。为了让用户处理表单,他们必须选中至少一个复选框。如果未选中任何复选框,则用户将收到有关此错误的消息。我有一个提交功能,我想验证这个标准。但是,我的功能如下: $(document).on('submit', '#myFrm', saveFrm); function saveFrm(e) { e.preventDefault(); var frmData = $(this).serialize(), submitBtn = $(this).

我有4个复选框字段的表单。为了让用户处理表单,他们必须选中至少一个复选框。如果未选中任何复选框,则用户将收到有关此错误的消息。我有一个提交功能,我想验证这个标准。但是,我的功能如下:

$(document).on('submit', '#myFrm', saveFrm);
function saveFrm(e) {
    e.preventDefault();
    var frmData = $(this).serialize(),
        submitBtn = $(this).closest('form').find(':submit'),
        messageBox = $(this).closest('form').find('.message-submit'),
        ckLen = $('#myFrm input[type=checkbox]:checked');

    if(ckLen === 0){
       alert('At least on checkbox has to be checked.');
    }else{
       // Save form
    }
}
上面的代码应该可以正常工作,但我想知道的是这行代码:

ckLen = $('#myFrm input[type=checkbox]:checked');
有没有办法用$this代替硬编码的表单id

您可以在$this上使用。还必须从对象中获取长度属性,以使条件正常工作:

ckLen = $(this).find('input[type=checkbox]:checked').length;

您已经找到了提交按钮和消息框。。。。。不知道有什么不同