Проверьте радио кнопки по классу

$(".test").each(function(i) {
  this.checked = true;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="radio" value="1" name="radio" class="test" id="tr1" />
<input type="radio" value="1" name="radio" class="radio" id="tr2" />


<input type="radio" value="1" name="radio" class="radio2" id="tr3" />
<input type="radio" value="1" name="radio" class="test" id="tr4" />
<button class="button">Click</button>

У меня есть два набора переключателей, и я бы хотел, чтобы класс "test" был отмечен по умолчанию.

Как бы я сделал это с переключателями, так как теперь мы можем отметить только один переключатель

2 ответа

Решение

Вы должны назвать два набора по-разному, потому что, если они все названы radio только один из них может быть проверен за один раз. Просто переименуйте второй набор в другое radio2 в моем примере ниже, и тогда наборы будут работать независимо друг от друга.

$(".test").each(function(i) {
  this.checked = true;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="radio" value="1" name="radio" class="test" id="tr1" />
<input type="radio" value="1" name="radio" class="radio" id="tr2" />


<input type="radio" value="1" name="radio2" class="radio2" id="tr3" />
<input type="radio" value="1" name="radio2" class="test" id="tr4" />
<button class="button">Click</button>

По определению, радио кнопки представляют собой группу <input> элементы, разделяющие одно и то же name с готовым поведением, что, когда один из них выбран, они дают содержащий <form> пространство имен определяется их общим name значение выбранного и автоматически отменить выбор любой другой переключатель с тем же name,

Он был специально разработан для этого варианта использования (где пользователи могут выбрать один из нескольких вариантов).

Если ваш сценарий требует, чтобы пользователи могли выбрать более одного, либо

  • использовать разные name атрибутов,
  • использование <input type="checkbox">s
  • использование <select> элементы с multiple="true"

Подводя итог: независимо от того, что вы делаете, ни один достойный браузер не позволит вам выбрать более одного <input type="radio"> с тем же name В то же самое <form> элемент. Любым методом. И даже если бы это было теоретически возможно, попытка получить значение этого пространства имен потерпела бы неудачу.

Радиокнопки похожи на горцев: "Может быть только одна".

Другие вопросы по тегам