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]
。我不知道你能做到。谢谢