2014-01-03 2 views
1

У меня есть несколько групп radioobuttongroups, и мне нужно запустить скрипт, когда они будут проверены.jQuery, проверьте, выбраны ли все группы радиообъектов

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

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

код, который проверяет, если radiobuttongroups проверяются:

$('.aQuestion').each(function(){ 
    if($(this).find('input[type="radio"]:checked').length > 0) 
    { 
     alert("checked"); 
    } 
    else 
    { 
     alert("not checked"); 
    }  
}); 

The radiobuttongroups (есть около 90 из них):

<div class='aQuestion' id='div1'> 
    <STRONG>1. </STRONG> 
    <STRONG>Question</STRONG></br> 
    <INPUT TYPE='radio' NAME='grp1' VALUE='0'>answer 1</br> 
    <INPUT TYPE='radio' NAME='grp1' VALUE='1'>answer 2</br> 
    <INPUT TYPE='radio' NAME='grp1' VALUE='2'>answer 3</br> 
    <INPUT TYPE='radio' NAME='grp1' VALUE='3'>answer 4</br> 
    <INPUT TYPE='radio' NAME='grp1' VALUE='4'>answer 5 
</div> 

<div class='aQuestion' id='div2'> 
    <STRONG>2. </STRONG> 
    <STRONG>Question</STRONG></br> 
    <INPUT TYPE='radio' NAME='grp2' VALUE='0'>answer 1</br> 
    <INPUT TYPE='radio' NAME='grp2' VALUE='1'>answer 2</br> 
    <INPUT TYPE='radio' NAME='grp2' VALUE='2'>answer 3</br> 
    <INPUT TYPE='radio' NAME='grp2' VALUE='3'>answer 4</br> 
    <INPUT TYPE='radio' NAME='grp2' VALUE='4'>answer 5 
</div> 

Заранее спасибо: D

+0

Название радио butttons не должна быть такой же –

+2

@dholakiyaankit Как бы групповая работа в противном случае? – CodingIntrigue

+0

Как должен быть запущен чек? При отправке формы? – Fabricio

ответ

2

Предполагая, что есть только одна кнопка радио группа на вопрос, вам не нужно перебирать вопросы, чтобы выяснить, все они выбрали:

var $questions = $(".aQuestion"); 
if($questions.find("input:radio:checked").length === $questions.length) { 
    // All Checked 
} 

jsFiddle который демонстрирует выше.

+0

работает отлично! – RedHawkDK

0

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

$(document).on('ready change','.aQuestion',function(){ 
    if($(this).find('input[type="radio"]:checked').length > 0) 
    { 
     alert("checked"); 
    } 
    else 
    { 
     alert("not checked"); 
    }  
}); 
0

Окончательный код:

jQuery('#submit').click(function(event) 
    { 
     event.preventDefault(); 

     $('.aQuestion').each(function() 
     { 
      if($(this).find('input[type="radio"]:checked').length > 0) 
      { 
       $(this).addClass("madeChoice"); // Run css that hides the group 
      } 
      else 
      { 
       $(this).addClass("didntMakeChoice"); // Run css that highlight the group.     
      } 
     }); 

     var $questions = $(".aQuestion"); 

     if($questions.find("input:radio:checked").length === $questions.length) 
     { 
      alert("all checked"); // Send result to DB. 
     } 
     else 
     { 
      alert("Not Checked"); // Do nothing. 
     } 
    }); 
Смежные вопросы