我想知道是否可以移动到下一个单选按钮
这是我从Selecting next radio button from selected one复制的简单小提琴
https://jsfiddle.net/5pn69jed/
$('.next').click(function() {
$("input[name=choice]:checked").next().next().click();
});
答案 0 :(得分:2)
您的代码在Two
处停止,因为three
被禁用。 Two.next()。next()= 3,但是three.click()无效,因为它已被禁用。
将残疾人士从三人中删除,您会发现它的工作原理很好。
您可以使用.nextAll("input:enabled").first()
查找下一个启用的输入
$('.next').click(function() {
$("input[name=choice]:checked").nextAll("input:enabled").first().click();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="radio" id="choise_1" name="choice" checked="checked" />
<label for="choise_1">One</label>
<input type="radio" id="choise_2" name="choice" />
<label for="choise_2">Two</label>
<input type="radio" id="choise_3" name="choice" disabled="disabled" />
<label for="choise_3">(Three)</label>
<input type="radio" id="choise_4" name="choice" />
<label for="choise_3">Four</label>
<button class="next">SELECT NEXT</button>
答案 1 :(得分:1)
我想到了这个
$('.next').click(function() {
var checkedRadio = $("input[name=choice]:checked");
var enabledRadios = $("input[name=choice]:enabled");
var index = enabledRadios.index(checkedRadio);
if (index< enabledRadios.length - 1) {
enabledRadios[index + 1].click();
}
});
这只会找到下一个启用的单选按钮,并将在enabledRadios列表中选择下一个。