跳至下一个非禁用单选按钮

时间:2019-03-06 09:25:50

标签: javascript jquery

我想知道是否可以移动到下一个单选按钮

enter image description here 每当我单击按钮时,它似乎就停在那里了。

这是我从Selecting next radio button from selected one复制的简单小提琴

https://jsfiddle.net/5pn69jed/

$('.next').click(function() {
  $("input[name=choice]:checked").next().next().click(); 
});

2 个答案:

答案 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列表中选择下一个。