Проверка всех переключателей, выбранных в JQuery и JSP, Struts

Я новичок в jquery, и я работаю с jsp и struts. В рамках приложения у меня есть форма опроса с несколькими категориями, каждая из которых имеет свой набор вопросов, и каждый вопрос с несколькими возможными ответами на выбор. Радио-кнопки. Я хочу, чтобы пользователь должен был выбрать один ответ на каждый вопрос в каждой категории перед отправкой формы и выдать ошибку, если они этого не сделают.

<s:iterator value="quelists">
<tr class="radioList">
<td>
<s:property  value="surveyQuestion"/><span id="msg_selectError"/> 
</td>

<td >
<s:iterator value="answerslists" status="status">
<s:radio  value="selectedAnswers[%{#count}]"  
          name="selectedAnswers[%{#count}]"  
          list="#{id:answer}"  required="true" theme="simple"/>
</s:iterator>
</td>

<s:set var="count" value="#count+1"/>    
</tr>
</s:iterator> 

person Mbayader    schedule 01.04.2012    source источник
comment
Пожалуйста, напишите также соответствующий HTML.   -  person Balkrishan Nagpal    schedule 02.04.2012
comment
@Mbayader, с какой проблемой ты столкнулся? Помните, что теги S2 в конечном итоге будут такими же, как теги HTML, поэтому все, что когда-либо применимо к тегам HTML, в равной степени применимо к тегам S2.   -  person Umesh Awasthi    schedule 02.04.2012
comment
Кто-то только что задал вопрос, на который я только что предоставил ответ, относящийся к проверке на стороне сервера, которую вы должны реализовать (клиент может отправить что угодно): stackoverflow.com/questions/9969024/ с этим... покажите полученный html людям jQuery и удалите все ссылки на struts2 , потому что на тот момент это была обычная веб-страница.   -  person Quaternion    schedule 02.04.2012


Ответы (2)


Я только учусь. Это работает: http://jsfiddle.net/WDfXq/2/

function isCheck() {
    var isOk = true;
    $('.radioList').each(function(){
         var countChecked = $(this).find(':checked').length;

         if(countChecked!=1) {
             $(this).css('color', 'red');
             isOk = false;
         } else {
             $(this).css('color', 'black');
         }
    }); 
    return isOk;
}
person gooogenot    schedule 02.04.2012
comment
большое спасибо, я не использовал его, но вдохновил меня на рабочее решение - person Mbayader; 03.04.2012

мне удалось сделать это через следующее:

часть Struts

<tbody>
<s:iterator value="quelists">
<tr class="radioList">
<td align="right" dir="rtl"><s:property  value="surveyQuestion"/></td>
<td >
<div class="controlsetRadio"> 
<s:iterator value="answerslists" status="status">
<s:radio id="selectedAnswers[%{#count},%{#status.count}]" 
         value="selectedAnswers[%{#count}]"  
         name="selectedAnswers[%{#count}]"   
         list="#{id:answer}"  
         required="true" theme="simple"/>
</s:iterator>
</div>
</td>
<s:set var="count" value="#count+1"/>
</tr>
</s:iterator>
</tbody>

часть JQuery

  <script type="text/javascript">

    $(document).ready(function(){

      $("form").submit(function(){
        var validateSurvey = Checkform();        
     if (validateSurvey){
      return true;
      }
     else
     { 
     alert("Please Answer All Questions!");
     return false;
     }
    });

    });


   function Checkform() {
    var result = true;
    var categories= $('.radioList').find('.controlsetRadio');
    $(categories).each(function() {
    var checked = $(this).find('input:radio:checked');
    var count = 0;
    if (checked.length !=1) {
            result = false;
              $(this).addClass('error');       
       }else{
         $(this).removeClass('error');
       }
    });


    return result;
}

</script>
person Mbayader    schedule 03.04.2012