Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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 jQuery验证动态填充组_Javascript_Jquery_Forms_Jquery Validate - Fatal编程技术网

Javascript jQuery验证动态填充组

Javascript jQuery验证动态填充组,javascript,jquery,forms,jquery-validate,Javascript,Jquery,Forms,Jquery Validate,我有一张表格,上面有这样的标记: <form> <label for="day">Day</label><input type="text" name="day" id="day"> <label for="month">Month</label><input type="text" name="month" id="month"> <label for="year">Yea

我有一张表格,上面有这样的标记:

 <form>
    <label for="day">Day</label><input type="text" name="day" id="day">
    <label for="month">Month</label><input type="text" name="month" id="month">
    <label for="year">Year</label><input type="text" name="year" id="year">
 </form>
谢谢,如有任何帮助,我们将不胜感激。

根据您对我已删除答案的评论:

在使用变量之前,必须先定义它

var myGroups = {DateofBirth: "day month year"};

$('#myform').validate({
    rules: {
        day: "required",
        month: "required",
        year: "required"
    },
    groups: myGroups
});
演示:

我不知道为什么我一开始就不能让它工作。。。也许是因为我的胳膊断了

注:

.validate只是插件的初始化方法。一旦被调用,它就不能也不会被再次调用。随后的调用将被忽略

插件作者未提供动态更改任何选项(规则/消息除外)的方法。一旦调用.validate,插件的选项就会被锁定


编辑:不确定你的想法是否与我的相同。但是,如果您计划在页面加载和插件初始化后更改groups选项的参数,则无法按照我上面的说明进行操作。

底线:插件初始化后,您无法动态更改任何选项,规则/消息除外。我认为这无法回答问题。这个答案假设编码人员知道字段的名称,但问题明确指出他不知道——它们只在运行时定义。这就是他所说的动态。。。有点像这个问题,但对于组而不是单个字段:@geoidesic,无论如何,为了在运行前不知道名称的情况下使用groups选项,仍然需要在运行时按照OP的示例代码构造myGroups变量。如果这是不可能的,那么就没有解决方案,因为这个插件没有提供在插件初始化后更改这些选项的方法。
var myGroups = {DateofBirth: "day month year"};

$('#myform').validate({
    rules: {
        day: "required",
        month: "required",
        year: "required"
    },
    groups: myGroups
});