jQuery/CoffeeScript:如果所有收音机都为false,则隐藏div,如果有则显示

jQuery/CoffeeScript:如果所有收音机都为false,则隐藏div,如果有则显示,jquery,coffeescript,Jquery,Coffeescript,我有一个div,如果用户对4个问题中的任何一个回答是(单击“True”收音机),我需要显示该div。但是如果它们对all的回答为false,则隐藏div。我一直遇到的问题是,如果用户改变了主意,返回并在任何问题上选择其他选项。我编写了这个CoffeeScript方法来处理它: $ -> numberFalse = 0 numberTrue = 0 hideIfAllNo = -> $('.legal-information').find('input[type=r

我有一个
div
,如果用户对4个问题中的任何一个回答是(单击“True”收音机),我需要显示该div。但是如果它们对all的回答为false,则隐藏
div
。我一直遇到的问题是,如果用户改变了主意,返回并在任何问题上选择其他选项。我编写了这个CoffeeScript方法来处理它:

$ ->
  numberFalse = 0
  numberTrue = 0
  hideIfAllNo = ->
    $('.legal-information').find('input[type=radio]').each ->
      if $(this).is(':checked') and $(this).val() is 'false'
        if numberFalse >= 4 then return else numberFalse += 1
        if numberTrue >= 1 then numberTrue -= 1 else numberTrue = 0
      else if $(this).is(':checked') and $(this).val() is 'true'
        if numberTrue >= 4 then return else numberTrue += 1
        if numberFalse >= 1 then numberFalse -= 1 else numberFalse = 0
    if numberFalse is 4
      $('.legal-info-extra-info').slideUp('fast')
    if numberTrue >= 1
      $('.legal-info-extra-info').slideDown('fast')

  $('.legal-information input[type=radio]').on 'change', ->
    hideIfAllNo()
这里的问题(除了一些可能有问题的样式选择;也可以随意权衡)是,用户可以通过在同一个问题的两个单选按钮上来回单击来增加
numberFalse
numberTrue
。在这一点上,或者如果他们回去在多个问题上做出不同的选择,计数就会混乱。我曾考虑过在数组中添加元素并计算数组长度,但这很快就变得一团糟。我应该如何处理一个改变主意的用户

编辑
我试图在对象的属性中存储true和false值,但调用了
$('.legal information').find('input[type=radio]:checked').attr('value','true')只需将
设置为
。有没有一种方法可以只获取一个数组的
true
attr?

这些局部变量是否保存了其他地方使用的真、假无线电的数量?如果否,您可以跳过此总和,只需在任何选中的
true
上显示此div,如下所示:

$ ->
  $('.legal-information input[type=radio]').on 'change', ->
    if $('.legal-information input[type=radio][value=true]:checked').length  > 0
      $('.legal-info-extra-info:hidden').slideDown('fast')
    else
      $('.legal-info-extra-info:visible').slideUp('fast')

是的!我丢失的是
[value=true]
。我不知道你能做到。谢谢