2012-04-01 64 views
0

我對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> 
+1

請放下相應的HTML。 – 2012-04-02 00:05:29

+0

@Mbayader你面臨的問題是什麼?記住最後的S2標籤與HTML標籤相同,所以對HTML標籤適用的東西同樣適用於S2標籤 – 2012-04-02 02:13:19

+0

有人剛剛問了一個問題,我剛剛提供了一個應用於您應該實現的服務器端驗證的答案(客戶端可以發送任何東西):http://stackoverflow.com/questions/9969024/struts2-validation-for-an-array與完成...顯示由此產生的HTML到jQuery人,並刪除所有對struts2的引用,因爲在這一點它只是一個普通的網頁。 – Quaternion 2012-04-02 02:18:03

回答

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; 
} 
+0

我正在編輯它。它現在工作 – gooogenot 2012-04-02 11:55:10

+0

非常感謝我沒有使用它,但啓發我的工作解決方案 – Mbayader 2012-04-03 13:31:59

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>