проверка, чтобы в каждой группе был выбран хотя бы один переключатель - PullRequest
12 голосов
/ 27 октября 2010

Я динамически вытягиваю и отображаю вопросы о переключателях в форме (разделенных на разные разделы с помощью вкладок jquery).

Таким образом, существует множество переключателей 2, 3, 4, 5 и т. Д.имеют одно и то же имя, но разные идентификаторы.

Когда вы нажимаете следующую между разделами, я хочу убедиться, что для каждой группы выбран хотя бы один переключатель.

(КогдаПри загрузке формы переключатели не отмечены ни одной по умолчанию, и это должно быть так.)

Я могу переключаться между переключателями текущего раздела, но я не уверен, как легко проверить, что один из них был проверендля каждой группы?

Ответы [ 5 ]

29 голосов
/ 27 октября 2010

В случае отсутствия каких-либо отношений между элементами, или как найти имена групп, я могу только дать вам указатель, но это должно сработать (проверка срабатывает при нажатии на элемент id="nextButton", но, очевидно, это можетнастраиваться на любое другое подходящее событие, например, $('form').submit()):

$(document).ready(
function(){
  $('#nextButton').click(
    function(){

    var radioName = something; // use this if there's a relationship between the element
                               // triggering this check and the radio buttons

      if ($('input[name='+ radioName +']:checked').length) {
           // at least one of the radio buttons was checked
           return true; // allow whatever action would normally happen to continue
      }
      else {
           // no radio button was checked
           return false; // stop whatever action would normally happen
      }
    }
  );
}
);
3 голосов
/ 27 октября 2010
$("input[@name='the_name']:checked").length;
2 голосов
/ 29 июня 2013
if ($("input:checked").length < Num_of_groups)
{
    alert ("Please select atleast one radio button in each group");
    return false;
}
1 голос
/ 16 февраля 2015

Попробуйте это

if ($('input[name='+radioName+']:checked').length == '0'){
    // do something 
    return false;
}
0 голосов
/ 28 августа 2018

Входные имена должны быть одинаковыми: sendType

Проверьте это:

$('#submitBtn').click(function(e){

   alert ($('input:radio[name="sendType"]:checked').length);

   if ($('input:radio[name="sendType"]:checked').length > 0) {
       //GO AHEAD

   } else {
       alert("SELECT ONE!");
       e.preventDefault();
   }

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...