我一整天都在进行自定义验证,我认为现在是时候寻求帮助了。
当您将用户添加到活动时,我构建的是与Facebook类似的选择用户界面。我正在尝试构建一个函数,如果没有选择任何用户,将返回错误。我遇到的问题是父div需要被视为表单元素,但我可以找到有关如何执行此操作的任何信息。
当我制作JSfiddle时,另一个想法来到我身边。我将用户ID存储在一个数组中。也许验证可以检查一个空数组?我不知道怎么做,或者哪种方式是理想的..
这是一个小提琴: http://jsfiddle.net/7neCU/1/
这是我到目前为止所尝试的内容。
$.validator.addMethod('require-one-div', function (element) {
if ($('#trainees').children('.each_user').hasClass('selected'))
return true;
}, "Please select at least 1 trainee");
和规则
rules: {
trainees:{
'require-one-div':true
},
}
我还给父母div #trainees
这个名字& id“学员”和所需的课程。
感谢您提出任何建议或想法。
答案 0 :(得分:1)
jQuery Validate不支持section
上的规则。它是一个表单插件。因此,您必须使用input
,textarea
,select
。
正如评论中所建议的那样,您可能需要做一些事情:
ignore: ''
,否则验证将忽略任何隐藏的表单字段。答案 1 :(得分:0)
Humm ....不是100%确定此验证插件的工作原理。但是一种方法可以简单地做到这一点作为“验证”步骤。
$.validator.addMethod('require-one-div', function (element) {
return $('#trainees .each_user.selected').length;
}, "Please select at least 1 trainee");
基本上它说,如果有0 .selected
.each_user div,验证将返回0(falsy)。如果存在至少一个,则.length> = 1是真实的,意味着验证通过。如果验证是相反的,只需添加一个!在长度检查!$('#trainees .each_user.selected').length