2012-10-12 36 views
0

如何使用Dojo在Spring WebFlow項目中創建複選框。我想知道如何在提交以下頁面時使複選框成爲必需。如果用戶沒有點擊其中一個複選框選項,我不希望提交工作。謝謝。如何使用Dojo在Spring WebFlow項目中需要複選框

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%> 
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt"%> 
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> 



<style type="text/css" media="screen"> 
@import url("<c:url value="/resources/dojo/resources/dojo.css"/>"); 
@import url("<c:url value="/resources/dijit/themes/claro/claro.css"/>"); 
</style>  

<script djconfig="parseOnLoad: true" 
src="<c:url value="/resources/dojo/dojo.js"/>" type="text/javascript"></script> 
<script type="text/javascript" 
src="<c:url value="/resources/spring/Spring.js" />"> </script> 
<script type="text/javascript" 
src="<c:url value="/resources/spring/Spring-Dojo.js" />"></script> 
<script type="text/javascript">dojo.require("dojo.parser");</script> 

<html> 
<head> 
<title>Spring 3.0 MVC - Web Flow Example</title> 
</head> 
<body class="claro"> 
    <h2>CheckBox Test</h2> 
    <p> 
    <p> 
    <form:form commandName="customer" id="customer"> 
     <input type="hidden" name="_flowExecutionKey" 
      value="${flowExecutionKey}" /> 
     <div id="container"> 
      <table> 
       <tr> 
        <td><font color=red><form:errors path="sex" /></font><b>Do you have a kid(s) of the follow sex type:</b></td> 
        <td><form:checkbox path="sex" id="sex" value="MALE" /> MALE | 
         <form:checkbox path="sex" id="sex" value="FEMALE" />FEMALE 
         <script type="text/javascript"> 
          dojo.query("#sex input[type='checkbox']").forEach(function(element){ 
           Spring.addDecoration(new Spring.ElementDecoration({ 
            elementId: element.id, 
            widgetType : "dijit.form.CheckBox", 
            widgetAttrs : { checked : element.checked, required : true, 
             validate: function(){ 
               if(dojo.query("INPUT[type='checkbox']", 'customer').filter(function(n){return n.checked;}).length > 0){return true;} else {alert('choose a type');return false;} 
              } 
} 
           })); 
          }); 
         </script> 
         </td></tr> 
         </table> 
     </div> 
     <p> 
     <input type="submit" name="_eventId_submit" id="submit" value="Submit" /> 
     <input type="submit" name="_eventId_cancel" value="Cancel" /> 
     <p> 
     <script type="text/javascript"> 
      Spring.addDecoration(new Spring.ValidateAllDecoration({ 
       elementId : 'submit', 
       event : 'onclick' 
      })); 
     </script> 
    </form:form> 
</body> 
</html> 
+0

你可以在你裝修 – rptmat57

+0

我一直在嘗試使用該驗證功能。我無法得到它的工作。你可以發佈樣本! – techsjs2012

+0

是不是使用單選按鈕而不是複選框? 如果你想要複選框。 – insomiac

回答

0

讓我猜:0或只有1個複選框確實有裝飾。

幾件事情在這裏:複選框不是單選按鈕,你不應該這樣使用它們。

您希望每個checkox都有不同的ID和路徑,因爲每個複選框都有不同的字段。

就算你做你想做的,有人可以檢查男性和女性有什麼...

您可以使用多個複選框與形式:複選框,但他們會被鏈接到一個數組或列表

驗證功能的

例子(如果它是你唯一的選擇框,否則一類或類似的東西查詢):

validate: function(){ 
      if(dojo.query("INPUT[type='checkbox']", 'customer').filter(function(n){return n.checked;}).length > 0){return true;} else {alert('choose a type');return false;} 
     } 
+0

不,我們需要複選框它。在表單可以提交之前,用戶必須對兩個問題說「是」。它真正的兩個不同的探索在現實生活中 – techsjs2012

+0

在那種情況下只是把不同的id和裝飾與驗證功能爲他們每個人。與單選按鈕相同的驗證功能 – rptmat57

+0

它沒有工作 – techsjs2012

相關問題