簡體   English   中英

jQuery-檢查是否選中了任何特定的單選按鈕

[英]jQuery - Check if any specific radio buttons are checked

jQuery的

$('input').change(function() {

  $('input:radio').prop('disabled', true);
  $('.answer-detail').show();

  $(this).next('label').addClass('correct');

  var correctAnswers = ("#answer1d", "#answer2c", "#answer3c");

  if (!$(correctAnswers).is(":checked")) {
    alert('Nothing is checked!');
  } else {
    alert('One of the radio buttons is checked!');
  }

});

HTML

<p>1: <span>What colour is the snowflake?</span></p>
<input class="answer" id="answer1a" type="radio" name="answer1" value="answer1a" /><label for="answer1a">Monochrome</label>
<input class="answer" id="answer1b" type="radio" name="answer1" value="answer1b" /><label for="answer1b">White</label>
<input class="answer" id="answer1c" type="radio" name="answer1" value="answer1c" /><label for="answer1c">Pantone 000C</label>
<input class="answer" id="answer1d" type="radio" name="answer1" value="answer1d" /><label for="answer1d">None of the above</label> 

我想檢查是否選中了“ correctAnswers”復選框。

目前,如果我選擇“ answer1d”,它將返回:

alert('One of the radio buttons is checked!');

知道我如何遍歷每個答案並查看是否已選中嗎?

您可以將correctAnswers更改為一個id屬性數組,然后使用.indexOf()方法檢查被檢查元素的id是否在該數組中:

更新示例

var correctAnswers = ["answer1d", "answer2c", "answer3c"];

if (correctAnswers.indexOf(this.id) > -1) {
  alert('One of the radio buttons is checked!');
} else {
  alert('Nothing is checked!');
}

您可以將選中的元素與.length一起過濾,以獲取選中的元素數:

var correctAnswers = ("#answer1d,#answer2c,#answer3c");
if(!$(correctAnswers).filter(':checked').length) {
   alert('Nothing is checked!');
}
else {
  alert('One of the radio buttons is checked!');
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM