自定义方法检查子div是否具有类 - jquery验证

时间:2012-12-14 00:41:16

标签: jquery html css validation plugins

我一整天都在进行自定义验证,我认为现在是时候寻求帮助了。

当您将用户添加到活动时,我构建的是与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“学员”和所需的课程。

感谢您提出任何建议或想法。

2 个答案:

答案 0 :(得分:1)

jQuery Validate不支持section上的规则。它是一个表单插件。因此,您必须使用inputtextareaselect

正如评论中所建议的那样,您可能需要做一些事情:

  1. 制作隐藏的复选框组或广播组
  2. 将您的个人资料点击进入每个复选框或广播
  3. 对此进行调用验证,但请务必指定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

之前