Проверка всех переключателей, выбранных в JQuery и JSP, Struts - PullRequest
0 голосов
/ 02 апреля 2012

Я довольно новичок в 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> 

Ответы [ 2 ]

0 голосов
/ 03 апреля 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>
0 голосов
/ 02 апреля 2012

Я только учусь .. Это работает: 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;
}
...