使用 jQuery 清除单选按钮组中的错误时遇到问题

Posted

技术标签:

【中文标题】使用 jQuery 清除单选按钮组中的错误时遇到问题【英文标题】:Trouble clearing errors in radio button groups using jQuery 【发布时间】:2013-02-14 02:59:32 【问题描述】:

当未选中组并提交表单时,我正在使用以下代码突出显示单选按钮字段。

我想这样做,以便从已检查的单选按钮组的标签元素中删除错误类。

有人可以通过修改下面的代码来告诉我如何做到这一点吗?

  checkRadios : function (form) 
    var $form = $(form),
        radioGroups = $form.find(".radiogroup")
        radios = radioGroups.find("input");

radios.each(function () 
  if ($radios.is(':checked')) 
    $(this).closest("tr")
           .find("label")
           .removeClass("error");
   else 
    $(this).closest("tr")
           .find("label")
           .addClass("error");

    $(this).on("change", function () 
      checkRadios(form);
    );
  
);

【问题讨论】:

【参考方案1】:

我觉得这样就可以了

function checkRadios() 
    var form = $('form')
    var grps = $('.radiogroup')
    grps.each(function(i, v)
        if($('input:checked', v).length > 0)
            $(v).closest('tr').find("label").removeClass('error');
        else
            $(v).closest('tr').find("label").addClass('error');
        
    );

演示:Fiddle

【讨论】:

更新了jsfiddle.net/arunpjohny/dCRaH/4 的小提琴,支持更改事件【参考方案2】:

试试这个代码:

radioGroups.each(function () 
    if ($(this).find("input:checked").length > 0) 
       $(this).closest("tr")
           .find("label")
           .removeClass("error");
     else 
       $(this).closest("tr")
           .find("label")
           .addClass("error");
    
);

这个想法是循环分组并查找每个组中是否有任何选中的收音机:

$(this).find("input:checked").length > 0

【讨论】:

以上是关于使用 jQuery 清除单选按钮组中的错误时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 验证,将错误消息放在复选框和单选按钮组下方

如何在 HTML 表单中创建两组单选按钮以及 A 组中的更改何时会在 B 组中更改?

我想在页面加载时检查某些单选按钮组中的某些特定单选按钮?

更改单选按钮选中状态时如何从单选按钮组中的单选按钮获取文本

jQuery确定在一个单选组中是否至少选中了一个单选按钮

选中组中的哪个单选按钮?