Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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_Html_Forms_Jquery Validate - Fatal编程技术网

Javascript Jquery验证程序与二维数组

Javascript Jquery验证程序与二维数组,javascript,jquery,html,forms,jquery-validate,Javascript,Jquery,Html,Forms,Jquery Validate,我将从我的问题示例开始: <form> <input name="course[0][name]" /> <input name="course[0][type]" /> <input name="course[1][name]" /> <input name="course[1][type]" /> ... ... </form> 我在文档中找不到解决方案,因为它有点混

我将从我的问题示例开始:

<form>
    <input name="course[0][name]" />
    <input name="course[0][type]" />

    <input name="course[1][name]" />
    <input name="course[1][type]" />

    ...
    ...
</form>

我在文档中找不到解决方案,因为它有点混乱。谢谢(:

更多解决方法:默认情况下,您可以在必填字段上指定名为
required
的类


另一个选项是以编程方式填写
规则
选项(在中完成代码):

假设一个简单的HTML示例具有以下主体:

<body>
    <form id="example">
    <input  name="course[0][name]" />
    <input  name="course[0][type]" />

    <input  name="course[1][name]" />
    <input  name="course[1][type]" />

    <input type="submit" name="some_name" value="Go" id="some_name">
    </form>
</body>

所以,我做了一点搜索,看起来rules对象中的键是简单的jQuery选择器。根据,有一个可以使用的正则表达式过滤器。在这两者之间,上面的正则表达式应该可以工作


创意: …您不需要预测它们,您的服务器已经知道它们。只需将该数字输出到脚本标记中,然后循环。见鬼,您甚至可以为自己创建服务器循环

如果这不是一个选项,那么您可以使用jQuery:

var rules = {
 // simple rule, converted to {required:true}
 name: "required",
 // compound rule
 email: {
   required: true,
   email: true
 }
 // whatever
}
// obviously, for just required, there are easier ways
var checkRules = {required:true}; 
$('#form-id input').each(function(i, elem)
{
   /check\[\d\]\[(name|type)\]/.test(elem.name)
   rules[elem.name] = checkRules
});

作为替代,您可以这样做

$.validator.addClassRules({
    inputName: {
        required: true,
        minLength: 5
    },
    inputType: {
        required: true,
        remote: "remoteurl"
    }
});
<input name="course[0][name]" class="inputName"/>
<input name="course[0][type]" class="inputType"/>
$.validator.addClassRules({
输入名称:{
要求:正确,
最小长度:5
},
输入类型:{
要求:正确,
远程:“远程URL”
}
});

你能在你的代码中使用类吗?是的,我能。但是参数不是真的或假的方法呢?好吧……这应该会起作用,谢谢你。但我真的希望“更干净”的解决方案=/great!那么我应该如何编写规则选择器呢?我首先尝试:
$(:regex(…):{required:true;}
我觉得更像这样:
var规则={/*做点什么*/};规则[':regex(name,/check\[\d\]\[(name | type)\]/')]
@hugo|u leonardo,用另一种方法(包括示例代码)更新了我的帖子。
var rules = {
 // simple rule, converted to {required:true}
 name: "required",
 // compound rule
 email: {
   required: true,
   email: true
 }
 // whatever
}
// obviously, for just required, there are easier ways
var checkRules = {required:true}; 
$('#form-id input').each(function(i, elem)
{
   /check\[\d\]\[(name|type)\]/.test(elem.name)
   rules[elem.name] = checkRules
});
$.validator.addClassRules({
    inputName: {
        required: true,
        minLength: 5
    },
    inputType: {
        required: true,
        remote: "remoteurl"
    }
});
<input name="course[0][name]" class="inputName"/>
<input name="course[0][type]" class="inputType"/>