Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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
jQuery验证:复选框的初始/动态验证_Jquery_Jquery Validate - Fatal编程技术网

jQuery验证:复选框的初始/动态验证

jQuery验证:复选框的初始/动态验证,jquery,jquery-validate,Jquery,Jquery Validate,我正在使用jquery验证插件:。现在,我有一个带有简单验证方法的代码段,该方法用于根据给定参数验证复选框的数量 $.validator.methods.cbMinRequired = function (value, element, param) { return $(element).parent().find(":checked").length >= param; }; $(function () { // validate the comment form whe

我正在使用jquery验证插件:。现在,我有一个带有简单验证方法的代码段,该方法用于根据给定参数验证复选框的数量

$.validator.methods.cbMinRequired = function (value, element, param) {
  return $(element).parent().find(":checked").length >= param;
};

$(function () {
    // validate the comment form when it is submitted
    $("#myform").validate({
        keyup: true,
        keypress: true,
        click: true,
        change: true,
        debug: true,
        errorClass: "invalid",
        rules: {
            mycheckboxes: {
                cbMinRequired: 1
            }
        }
    });
  });
看看我的小提琴:

正如你所看到的,我有一个问题

我必须先触发“提交”来验证表单。但我想在加载后验证它。正如我所想,最初没有触发submit的选项,因为最后我想用这个按钮触发一个“save action”,页面加载后不应该调用这个按钮

有什么想法可以解决这个问题吗?

您可以调用该方法来触发验证,而无需提交

if (!$("#myform").valid()) {
    // Complain
}
查看您的“我的版本”,页面加载时会显示验证消息。

您的代码:

$(function () {
    $("#myform").validate({
        keyup: true,
        keypress: true,
        click: true,
        change: true,
        debug: true,
        errorClass: "invalid",
        rules: {
            mycheckboxes: {
                cbMinRequired: 1
            }
        }
    });
});
您的代码有一个主要问题:称为
keyup
keypress
单击
,或
更改
onkeyup
onfocusout
onclick
,以及
onsubmit
,它们在默认情况下已经是“true”。。。如果不中断插件,则无法将它们设置为
true
。您只能将其设置为
false
以禁用,或将其设置为自定义功能

然后,您可以在希望的任何时候通过使用以编程方式触发验证测试

这将在页面加载时触发验证

$(function () {

    $("#myform").validate({ // initialize the plugin
        // options
    });

    $("#myform").valid(); // trigger validation on page load

});

您的演示更新了

酒吧招待是正确的,但是如果您想在第二次提交时提交onload并处理提交,您可以使用flag变量并提交

$('#myform').submit();
submitEnabled = true;

JSFIDLE已更新。

在我的情况下,它不起作用:我想查看错误消息。它是如此奇怪:一个简单的范围输入字段是在飞行中检查,但首先,在失去一倍的焦点。那就不需要提交了。复选框确实需要这样做。这使得插件在我的情况下是不必要的。真的很糟糕,如果我明白你想要什么的话。看看我的小提琴。另一个(愚蠢的)问题是我试图用这种方式触发它:$(“#myform”).validate({…}).valid()。。。不要尝试!:)如果我把电话分开,效果会很好是的,看起来他没有正确地编码,这样就可以链接了
.validate()
返回一个验证器对象,而不是jQuery对象。此插件没有名为
keyup
keypress
单击
更改
的选项。
$('#myform').submit();
submitEnabled = true;