2012-09-05 1 views
0

Spring WebFlow2 JavaScript ne soumet pas cette page? J'essaie d'utiliser Spring JavaScript fourni avec WebFlow2 pour soumettre ma page avec une valeur de transition si l'utilisateur clique sur l'un des boutons radio. J'ai inséré mon javascript mais la page n'est pas soumise sur le clic?Spring WebFlow2 JavaScript ne soumet pas la page?

JSP:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> 
<html> 
<head> 
<title>Spring 3.0 MVC - Web Flow Example</title> 

<script type="text/javascript" 
    src="<c:url value="/resources/dojo/dojo.js" />"> 

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

<link type="text/css" rel="stylesheet" 
    href="<c:url value="/resources/dijit/themes/tundra/tundra.css" />" /> 
</head> 
<body> 
    <h2>Customer Registration</h2> 

    <form:form commandName="customer" id="customer"> 
     <input type="hidden" name="_flowExecutionKey" 
      value="${flowExecutionKey}" /> 
     <table> 
      <tr> 
       <td><font color=red><form:errors path="name" /></font><b>Name: 
       </b></td> 
       <td><form:input path="name" id="name" /> <script 
         type="text/javascript"> 
        Spring 
          .addDecoration(new Spring.ElementDecoration(
            { 
             elementId : "name", 
             widgetType : "dijit.form.ValidationTextBox", 
             widgetAttrs : { 
              promptMessage : "This is the name you would like entered into the system." 
             } 
            })); 
       </script> <br /> 
        <p></td> 
      </tr> 
      <tr> 
       <td><font color=red><form:errors path="phoneNumber" /></font> 

        <b>Phone number: </b></td> 
       <td><form:input path="phoneNumber" id="phoneNumber" /><br /> 
        <script type="text/javascript"> 
         Spring 
           .addDecoration(new Spring.ElementDecoration(
             { 
              elementId : "phoneNumber", 
              widgetType : "dijit.form.ValidationTextBox", 
              widgetAttrs : { 
               promptMessage : "This is the phone number for the above name" 
              } 
             })); 
        </script></td> 
      </tr> 
      <tr> 
       <td></td> 
      </tr> 
      <tr> 
       <td><b>Row:</b></td> 
       <td><form:radiobutton value="B" path="row" id="row" />Row: B<BR> 
        <form:radiobutton value="A" path="row" id="row" />Row: A<BR> 
        <script type="text/javascript"> 
         Spring.addDecoration(new Spring.AjaxEventDecoration({ 
          elementId : "row", 
          formId : "customer", 
          event : "onChange", 
          params : { 
           _eventId : "loadSchools", 
           fragments : "body" 
          } 
         })); 
        </script></td> 
      </tr> 
     </table> 
     <input type="submit" name="_eventId_proceed" value="proceed" 
      id="proceed" /> 
     <script type="text/javascript"> 
      Spring.addDecoration(new Spring.ValidateAllDecoration({ 
       elementId : 'proceed', 
       event : 'onclick' 
      })); 
     </script> 
     <input type="submit" name="_eventId_cancel" value="Cancel" /> 
    </form:form> 

</body> 
</html> 

Répondre

0

cela fait partie de mon code qui fonctionne (formulaire est soumis), il est avec un select au lieu de radiobutton mais la même idée. lorsque vous sélectionnez une valeur, il envoie automatiquement la forme et mettre à jour les valeurs:

<form:form commandName="dateRange"> 
... 
    <select name="fyForDR" id="fyForDR" class='discretFont' style='margin-left:10px;margin-right:10px;'> 
      <option value="" selected='selected'>Fiscal Year</option> 
      <option value="2011" <c:if test="${fyForDR == '2011'}">selected="selected"</c:if> >FY11</option> 
      <option value="2010" <c:if test="${fyForDR == '2010'}">selected="selected"</c:if> >FY10</option> 
      <option value="2009" <c:if test="${fyForDR == '2009'}">selected="selected"</c:if> >FY09</option> 
      <option value="2008" <c:if test="${fyForDR == '2008'}">selected="selected"</c:if> >FY08</option> 
      <option value="2007" <c:if test="${fyForDR == '2007'}">selected="selected"</c:if> >FY07</option> 
      <option value="2006" <c:if test="${fyForDR == '2006'}">selected="selected"</c:if> >FY06</option> 
     </select> 
     <script type="text/javascript"> 
      Spring.addDecoration(new Spring.AjaxEventDecoration({ 
       elementId: "fyForDR", 
       event: "onchange", 
       formId:"dateRange", 
       params: {fragments:"body", _eventId: "setFy"} 
      })); 
     </script> 
... 
</form:form> 

et ici fait partie de la définition de flux:

<view-state id="dateRangeForm" model="dateRange"> 
... 
    <transition on="setFy" validate="false" > 
       <set name="viewScope.fyForDR" value="requestParameters.fyForDR"/> 
       <evaluate expression="dateRange.setStartDate(dateRangeService.getFyStartDate(viewScope.fyForDR))"></evaluate> 
       <evaluate expression="dateRange.setEndDate(dateRangeService.getFyEndDate(viewScope.fyForDR))"></evaluate> 
    </transition> 
... 
</view-state> 
+0

merci, mais j'utilise la radio boutons et encore il semble que cela ne fonctionne que pour le premier clic sur le premier bouton radio – PartyWithJohn

+0

alors ça marche? avez-vous mis à la fois onchange et onclick, et la décoration pour les deux aussi? – rptmat57

+0

NOOOO NE FONCTIONNE PAS .... Je mets à la fois onchange et onclick et cela ne fonctionne que si vous cliquez sur le premier bouton radio .... – PartyWithJohn

0

essayer de mettre un autre identifiant pour chacune des lignes comme ceci:

<td><form:radiobutton value="B" path="row" id="rowB" />Row: B<BR> 
     <form:radiobutton value="A" path="row" id="rowA" />Row: A<BR> 
     <script type="text/javascript"> 
       Spring.addDecoration(new Spring.AjaxEventDecoration({ 
        elementId : "rowA", 
        formId : "customer", 
        event : "onChange", 
        params : { 
         _eventId : "loadSchools", 
         fragments : "body" 
         } 
       })); 
       Spring.addDecoration(new Spring.AjaxEventDecoration({ 
        elementId : "rowB", 
        formId : "customer", 
        event : "onChange", 
        params : { 
         _eventId : "loadSchools", 
         fragments : "body" 
         } 
       })); 
     </script></td> 
+0

ne fonctionne pas ... – PartyWithJohn

Questions connexes