jQuery Validate - 仅当选中单选按钮时,才会选中一组复选框中的至少一个

2024-03-22

我正在使用 jquery 验证插件来确保一组三个复选框中至少有一个被选中并且工作正常。但我只想在选中单选按钮“Sim”时验证这些复选框。我不知道该怎么做。

Demo: http://jsfiddle.net/TnmGr http://jsfiddle.net/TnmGr

网页表单:

<form name="itemForm" id="itemForm" method="post">
<p>
  <input name="resp01" type="radio" value="sim" id="resp01-sim" class="resp" /> <label for="resp01-sim">Sim</label>
  <input name="resp01" type="radio" value="não" id="resp01-nao" class="resp" /> <label for="resp01-nao">Não</label>
</p>
<fieldset style="width:200px"><legend>Outros catalogos</legend>
<input id="opt01" name="opt01" type="checkbox" value="true" class="require-one" />
<label for="opt01">opt01</label>
<input name="opt01" type="hidden" value="false" /><br />

<input id="opt02" name="opt02" type="checkbox" value="true" class="require-one" />
<label for="opt02">opt02</label>
<input name="river2" type="hidden" value="false" /><br />

<input id="opt03" name="opt03" type="checkbox" value="true" class="require-one" />
<label for="opt03">opt03</label>
<input name="opt03" type="hidden" value="false" /><br />
</fieldset>
<div class="error" id="form_error"></div>
<br />
<input type="submit" />

JS:

$.validator.addMethod('require-one', function(value) {
    return $('.require-one:checked').size() > 0;
}, 'Selecione pelo menos uma das opções.');

$(document).ready(function(){

    var checkboxes = $('.require-one');
    var checkbox_names = $.map(checkboxes, function(e, i) {
        return $(e).attr("name")
    }).join(" ");

    $("#itemForm").validate({
        groups: {
            checks: checkbox_names
        },
        rules: {
            resp01: 'required',
        },
        messages: {
            resp01:  { required: 'Selecione uma resposta!' },
        },
        errorPlacement: function(error, element) {
            $('#form_error').append(error);
        },
        submitHandler: function(form) {
            alert('Form Submited');
            return false;
        }        

    });
});

您只需要更改自定义方法的逻辑即可。

$.validator.addMethod('require-one', function(value) {
    if ($('#resp01-sim').is(':checked')) {
        return $('.require-one:checked').size() > 0;
    } else {
        return true;
    }
}, 'Selecione pelo menos uma das opções.');

DEMO: http://jsfiddle.net/TnmGr/4/ http://jsfiddle.net/TnmGr/4/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery Validate - 仅当选中单选按钮时,才会选中一组复选框中的至少一个 的相关文章

随机推荐

  • 根据时间在 perl 脚本中运行子程序?

    我有一个 perl 脚本 它作为守护进程一直循环运行 我想在基于时间 或计时器 的 perl 脚本中运行一个子函数 因此每 2 小时它将运行该子函数并继续其循环 我正在考虑获取纪元时间 然后通过循环检查几次 一旦它大于 2 小时 它就会运行
  • 仅当 EntityCollection 或 EntityReference 不包含对象时才能调用 Load

    正如标题所示 当我使用实体框架 4 1 的延迟加载来关闭跟踪时 我收到了错误 完整的异常消息 当使用 NoTracking 合并选项返回对象时 仅当 EntityCollection 或 EntityReference 不包含对象时才能调用
  • Joda 时间 两个日期之间的时间间隔(包括时区)

    我使用 JodaTime 库进行时间操作 我有两个日期 日期一 DateTime time server new DateTime server time milisecs withZone DateTimeZone forID Europ
  • Devise 令牌身份验证错误:未设置 Devise.secret_key

    我目前正在使用 Devise 令牌身份验证 https github com lynndylanhurley devise token auth https github com lynndylanhurley devise token a
  • 如何隐藏“网络”选项卡中的请求

    如何在浏览器开发者工具的网络选项卡中隐藏 api 服务请求 任何建议 尽管我强烈建议不要这样做 因为它不会阻止任何认真的用户 但是可以通过 flash 或任何其他具有此类功能的插件来发送它 实现这一目标的最简单方法是使用启用 Flash 的
  • Paramiko - 在“后台”运行命令

    我已经使用 exec command 成功实现了 Paramiko 但是 我在远程计算机上运行的命令有时可能需要几分钟才能完成 在此期间 我的 Python 脚本必须等待远程命令完成并接收标准输出 我的目标是让远程机器 在后台运行 并允许本
  • Angular 下载大 blob

    我有一个类似的问题this one https stackoverflow com questions 46932213 how to download large file with javascript我成功下载了通过 HTTP GET
  • Objective-C:Unicode 日期格式

    我正在尝试找出如何使用 UNICODE 表示 Sun 03 May 2009 19 58 58 0700 as eee dd MMM yyyy HH mm s ZZZZ 或其他 我似乎无法让它精确地工作 Use an NSDateForma
  • 字符编码问题?

    在我的 mysql 数据库中 页面名称字段中有以下信息 如果我执行 phpmyadmin 转储 则会导出以上内容 我正在使用不同的 php 脚本 而不是上面的脚本 我得到的是这个 这是生成输出的片段 data sql SELECT FROM
  • SQL 存储过程 - 从多个数据库执行

    我的公司使用来自许多客户的数据 并且忽略了记录我们数据库的表和字段所代表的内容 为了帮助解决这个问题 我编写了一些存储过程 这些过程似乎只适用于它们所在的数据库 我希望服务器上有一个存储过程实例 可以在其所有数据库上使用 但不知道如何实现这
  • 在 Idea 中查找对某个对象的所有引用

    Intellij IDEA IDE 是否有快捷键或选项来查找对某个文件的所有引用Class在一个特定的项目中 例如 我创建了自己的Class持有一个String and an int我已经通过该项目进行了参考 该项目相当大 我不想手动搜索每
  • 有没有办法将 python 应用程序编译成静态二进制文件?

    我想做的是将我的代码发送到远程服务器 该服务器可能安装了不同的 python 版本和 或可能没有我的应用程序所需的包 现在为了实现这种可移植性 我必须使用解释器和代码构建可重定位的 virtualenv 这种方法有一些问题 例如 您必须手动
  • [Vue warn]:$attrs 是只读的。 [Vue 警告]:$listeners 是只读的

    我对 Vuejs 比较陌生 每次按下按键时都会收到以下警告 Vue warn attrs is readonly found in gt
  • 用于从 const 映射中读取的惯用 C++

    For an std map
  • Canny Edge 之后的边界检测

    我尝试过 Canny Edge 的开源 Java 实现 我只需要图像的边界 轮廓 但输出中有额外的线条 使用 Canny Edge 后有什么方法可以删除这些线条 是否有其他算法 或者是否有其他方法可以修改程序 使其仅检测轮廓 我试过了thi
  • WSO2 API 管理器端口

    我需要发布为在端口 80 和 443 而不是 8280 和 8243 上运行而开发的所有 API 我如下更改了 axis2 xml 并重新启动了 API Manager 服务器
  • 返回动态对象类型的通用方法

    可能是一个以前被问过的问题 但像往常一样 当你提到通用这个词时 你会得到一千个解释类型擦除的答案 我很久以前就经历过这个阶段 现在对泛型及其使用有了很多了解 但这种情况稍微微妙一些 我有一个代表电子表格中数据单元格的容器 它实际上以两种格式
  • 使用 YouTube Android 播放器 API 时,YouTube 广告永远不会展示

    无论播放器风格或视频是什么 YouTube 广告都不会展示 实际 YouTube 版本 10 18 55 YouTube Android 播放器 API 1 2 1 我记得我在开发应用程序时看到了一些广告 现在经过数百次测试我看不到任何广告
  • 尝试在 ajax 调用中设置 cookie,Laravel

    我试图在 ajax 调用中设置 cookie 但无法让它工作 我知道我需要通过 response gt headers 上的 setCookie 设置它 cookie 变量看起来正确 但浏览器中没有设置 cookie 我的控制器的代码 co
  • jQuery Validate - 仅当选中单选按钮时,才会选中一组复选框中的至少一个

    我正在使用 jquery 验证插件来确保一组三个复选框中至少有一个被选中并且工作正常 但我只想在选中单选按钮 Sim 时验证这些复选框 我不知道该怎么做 Demo http jsfiddle net TnmGr http jsfiddle