Проверка по крайней мере одного переключателя выбирается из каждой группы (с помощью jquery)

Я динамически вытягиваю и показываю quesitons переключателя на форме (разделенной на разные разделы вкладками jquery).

Итак, есть много переключателей 2, 3, 4, 5 и т.д., которые имеют одно и то же имя, но разные идентификаторы.

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

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

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

Ответ 1

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

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

    var radioName = something; // use this if there 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
      }
    }
  );
}
);

Ответ 2

$("input[@name='the_name']:checked").length;

Ответ 3

if ($("input:checked").length < Num_of_groups)
{
    alert ("Please select atleast one radio button in each group");
    return false;
}

Ответ 4

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

if ($('input[name='+radioName+']:checked').length == '0'){
    // do something 
    return false;
}

Ответ 5

Входные имена должны быть одинаковыми: 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();
   }

});

Ответ 6

используйте этот код

не забудьте поставить кнопку за пределы формы

$("#buttonid").click(function(){
                    var check = true;
                    $("input:radio").each(function(){
                        var name= $(this).attr('name');
                        if($("input:radio[name="+name+"]:checked").length){
                            check = true;
                        }
                        else{
                            check=false;
                        }
                    });

                    if(check){
                        $("#formid").submit();
                    }else{
                        alert('Please select at least one answer in each question.');
                    }
                });