【发布时间】:2012-12-07 23:56:07
【问题描述】:
我正在尝试使用几个简单的复选框来解决一个问题,我想使用这些复选框来显示/隐藏(切换)div,但需要保留复选框的值,这意味着它们不能使用禁用属性,因为如果是这样, 他们不会被提交。所以基本上我正在尝试的是禁用单击已选中的复选框以避免单击相同的复选框并切换 div。只有未选中的复选框应该是可点击的,并且通过继承 div 将切换。 (我的问题是复选框,而不是 div 切换)
<input type="radio" id="cc_email0" name="form[cc_email]" value="0" checked="checked">
<input type="radio" id="cc_email1" name="form[cc_email]" value="1">
<div id="for_cc_mail0" style="display: block">The div content for 0</div>
<div id="for_cc_mail1" style="display: none">The div content for 1</div>
提前感谢您的帮助! M
【问题讨论】:
-
为什么不直接禁用它们,然后在提交之前重新启用复选框?
-
为什么需要禁用它们?如果有人点击已经选择的 RADIO 按钮,那么它只会使已经可见的元素可见,因此没有明显的效果。
-
@Bob,不,因为附加的 toggle() 在 div 链行为中。无论是否选中,单击相同的复选框都会切换 div。那是我的问题。
-
@Mario gotchya。您还可以使用 jQuery 过滤器链 .is(':visible') 这是我最喜欢的针对这种情况的工具之一。只需在显示或隐藏之前检查#for_cc_mail 是否可见。答案几乎是什么,只是更具可读性(对我而言)
-
谢谢 Bob,我会把它作为参考。我决定放弃 toggle(),只使用 show() 和 hide()。事实上,是 toggle() 搞砸了看似相当简单的事情。谢谢!
标签: jquery click toggle bind checkbox