2012-04-01 6 views
0

Ich bin ziemlich neu in Jquery und ich arbeite mit Jsp und Struts. Als Teil der Anwendung habe ich ein Umfrageformular mit einer Reihe von Kategorien mit jeweils verschiedenen Fragen und jede Frage mit einer Anzahl von möglichen Antworten aus, um Radio-Buttons auszuwählen. Ich möchte, dass der Benutzer aufgefordert wird, vor dem Übermitteln des Formulars eine Antwort für jede Frage in jeder Kategorie auszuwählen und andernfalls einen Fehler zu geben.Alle Radiobuttons in JQuery und JSP ausgewählt, 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> 
+1

Bitte geben Sie auch das entsprechende HTML an. –

+0

@Mbayader was ist das Problem, vor dem Sie stehen? Denken Sie daran, dass S2-Tags am Ende dieselben wie HTML-Tags sind. Was auch immer für HTML-Tags gilt, gilt gleichermaßen für S2-Tags. –

+0

Jemand hat gerade eine Frage gestellt, für die ich gerade eine Antwort geliefert habe, die auf die serverseitige Validierung angewendet werden sollte Client kann alles senden): http://StackOverflow.com/Questions/9969024/struts2-validation-for-an-array mit dem getan ... zeigen Sie die resultierende HTML zu den jQuery Menschen und entfernen Sie alle Verweise auf Struts2, weil an dieser Punkt ist nur eine normale Webseite. – Quaternion

Antwort

0

Ich lerne gerade .. Es funktioniert: 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; 
} 
+0

Ich bearbeite es. Es funktioniert jetzt – gooogenot

+0

vielen Dank ich habe es nicht verwendet, aber inspirierte mich zu der Arbeitslösung – Mbayader

0

schaffte ich es durch die folgenden Funktionen ausführen:

die Struts Teil

<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> 

der JQuery Teil

<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> 
Verwandte Themen