[英]jQuery - get active button from buttons group (input type = “radio”)
[英]combining function to display input field alongside radio button in a group of radio buttons using Jquery
我有一个广播组 ,其中包含n个选项。 每个单选按钮都位于滑块旁边,我仅在选中该组中的单选选项时才要显示。
我想我可以用id标识每个单选按钮n次,并用id标识每个滑块,以便在选中时显示它,例如:
if ($('#rToggle').is(':checked')) {
$('#pSlider1').show(); }
我只是想知道是否有更好的方法来使用尽可能少的IF语句。
建议的代码(具有单独的ID):
<tr>
<td class="first-column"> </td>
<td>
<div class="layout-slider layout-slider-radio">
<input type="radio" id="rToggle" name="periodType" default>
</div>
<div class="layout-slider layout-slider-label">Day</div>
<div id="pSlider1" class="layout-slider layout-slider-slider">
<input id="Slider2" type="slider" name="day" value="2;15" />
</div>
</td>
</tr>
实际代码(无ID):
<tr>
<td class="first-column"> </td>
<td>
<div class="layout-slider layout-slider-radio">
<input type="radio" name="periodType" default>
</div>
<div class="layout-slider layout-slider-label">Day</div>
<div class="layout-slider layout-slider-slider">
<input id="Slider1" type="slider" name="day" value="2;15" />
</div>
</td>
</tr>
<tr>
<td class="first-column"> </td>
<td>
<div class="layout-slider layout-slider-radio">
<input type="radio" name="periodType" default>
</div>
<div class="layout-slider layout-slider-label">Month</div>
<div class="layout-slider layout-slider-slider">
<input id="Slider2" type="slider" name="month" value="2;15" />
</div>
</td>
</tr>
<tr>
<td class="first-column"> </td>
<td>
<div class="layout-slider layout-slider-radio">
<input type="radio" name="periodType" default>
</div>
<div class="layout-slider layout-slider-label">Year</div>
<div class="layout-slider layout-slider-slider">
<input id="Slider3" type="slider" name="year" value="2;15" />
</div>
</td>
</tr>
这些行进行了n次...
is:checked函数将仅检查一次状态。 您想要的是在未选中/选中时切换显示,因此您应使用如下更改事件:
$("input[type=radio][name=foo]").change(function() {
$("#div").toggle();
});
您有几种选择。
将data-sliderid
属性放在单选按钮上,并将ID放在包含滑块的<div>
上,例如:
的HTML
<td>
<div class="layout-slider layout-slider-radio">
<input type="radio" name="periodType" data-sliderid="pSlider1" default>
</div>
<div class="layout-slider layout-slider-label">Day</div>
<div id="pSlider1" class="layout-slider layout-slider-slider">
<input id="Slider1" type="slider" name="day" value="2;15" />
</div>
</td>
的JavaScript
$('input[name="periodType"]').change(function() {
if(this.checked) {
$('#' + $(this).data('sliderid')).show();
}
});
或使用DOM遍历:
$('input[name="periodType"]').change(function() {
var $sliderDiv = $(this).closest('div').siblings('.layout-slider-slider');
if(this.checked) {
$sliderDiv.show();
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.