1

我整天都在与自定义验证作斗争,我认为是时候寻求帮助了。

当您将用户添加到事件时,我构建的是类似于 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“受训者”以及所需的类别。

感谢您的任何建议或想法。

4

2 回答 2

1

jQuery Validate 不支持section. 它是一个表单插件。所以你必须使用input, textarea, select.

正如评论中所建议的,您可能需要一些东西:

  1. 创建一个隐藏的复选框组或单选组
  2. 将您的个人资料的点击挂钩到每个复选框或收音机
  3. 调用 validate ,但确保指定ignore: '',否则 validate 将忽略任何隐藏的表单字段。
于 2012-12-14T19:06:23.867 回答
0

嗯....不是 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(假)。如果至少有一个, .length >= 1 是真实的,这意味着验证通过。如果验证结果相反,只需加上 ! 在长度检查前!$('#trainees .each_user.selected').length

于 2012-12-14T17:26:01.690 回答