【问题标题】:custom method to check if child div hasClass - jquery validate自定义方法来检查子 div 是否有类 - jquery 验证
【发布时间】:2012-12-14 00:41:15
【问题描述】:

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

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

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

【问题讨论】:

  • 验证插件可能会寻找 input 字段。为什么不添加 input type='hidden'true/false 值并通过 click 事件设置?
  • 我正在尝试这个,谢谢你的建议

标签: jquery html css validation plugins


【解决方案1】:

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

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

  1. 创建一个隐藏的复选框组或单选组
  2. 将您的个人资料的点击链接到每个复选框或收音机中
  3. 对此调用 validate,但请确保指定 ignore: '',否则 validate 将忽略任何隐藏的表单字段。

【讨论】:

  • 嘿,非常感谢!我似乎已经让它与这些信息一起工作。
【解决方案2】:

嗯......不是 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

【讨论】:

    猜你喜欢
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多