0

我对 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> 
4

2 回答 2

0

我只是在学习..它的工作原理: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;
}
于 2012-04-02T10:12:38.380 回答
0

我设法通过以下方式做到了:

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>
于 2012-04-03T13:46:43.827 回答