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"/>