使用jQuery检查单选按钮后切换内容
问题描述:
如何解决该问题?我想切换每个单选按钮的内容,如果它被选中。另外我怎么能设置默认选定的单选按钮?使用jQuery检查单选按钮后切换内容
$(".option-detail").hide();
$(".option").click(function() {
$(this).next('div').slideToggle(this.checked);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<ul>
<li>
<input type="radio" class="option">Option 1
<div class="option-detail">Some content here</div>
</li>
<li>
<input type="radio" class="option">Option 2
<div class="option-detail">Some content here</div>
</li>
<li>
<input type="radio" class="option">Option 3
<div class="option-detail">Some content here</div>
</li>
</ul>
</div>
答
Relevant Spec - 17 Forms/17.2.1 Control types
收音机按钮类似,只是该复选框时几个共享相同的控制名,它们是相互排斥的:当一个被 “接通”,所有其他具有相同名称的人都将被关闭。
因此,无线电元件需要共享通用名称属性以使它们互相排斥。
<input type="radio" name="group" class="option">
$(':input').on('change', function() {
$(".option-detail").slideUp();
$(this).parent('label').next('div').slideToggle(this.checked);
});
变化我提出:
- 我包裹
input
元件与label
元件,以便提高可用性。这样做,您现在可以单击文本或单选按钮以触发更改事件。 - 我将活动从
click
更改为change
。 - 每次发生事件时,我都会滑动所有
.option-detail
元素。这样做,一次只显示一个。
如果您希望默认选择单选按钮,请将checked
属性添加到该属性中。
<input type="radio" name="group" class="option" checked>
或
<input type="radio" name="group" class="option" checked="checked">
$(".option-detail").hide();
$(':input').on('change', function() {
$(".option-detail").slideUp();
$(this).parent('label').next('div').slideToggle(this.checked);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<ul>
<li>
<label><input type="radio" name="group" class="option" checked>Option 1</label>
<div class="option-detail">Some content here</div>
</li>
<li>
<label><input type="radio" name="group" class="option">Option 2</label>
<div class="option-detail">Some content here</div>
</li>
<li>
<label><input type="radio" name="group" class="option">Option 3</label>
<div class="option-detail">Some content here</div>
</li>
</ul>
</div>
+0
感谢乔希,一如既往非常有帮助和全面的答案在这个问题上! – 2015-02-10 22:35:42
你的单选按钮需要的名字。你可以通过添加checked属性来选择一个默认值。 – j08691 2015-02-10 22:19:38