h:selectOneMenu valueChangeListener does not work
pepelara Oct 10, 2012 1:30 AMI have some h:selectOneMenu in my xhtml file which I have to validate.
Here is an example of my code,
<h:panelGroup id="inCCTypePanel"> <h:form id="inCCTypeForm"> <h:panelGrid rendered="#{carritoBean.carritoSelected and !(carritoBean.pedidoAbonado or carritoBean.pedidoCancelado)}"> <rich:panel style="width:150px;"> <f:facet name="header">Tipo de tarjeta</f:facet> <h:selectOneMenu id="cctId" value="#{carritoBean.cCard}" valueChangeListener="#{carritoBean.changeCCType}" required="true" requiredMessage="Selected credit card type is required."> <f:selectItem itemValue="" itemLabel="Default" /> <f:selectItem itemValue="american" itemLabel="American Express" /> <f:selectItem itemValue="dinner" itemLabel="Dinner's Club" /> <f:selectItem itemValue="discover" itemLabel="Discover" /> <f:selectItem itemValue="master" itemLabel="Master Card" /> <f:selectItem itemValue="visa" itemLabel="Visa" /> <a4j:ajax event="valueChange" render="validateCCTypePanel" execute="@this"/> </h:selectOneMenu> </rich:panel> <a4j:outputPanel id="validateCCTypePanel"> <h:panelGrid rendered="#{carritoBean.cCardSelected and !(carritoBean.pedidoAbonado or carritoBean.pedidoCancelado)}"> <h:inputHidden id="idCCType" value="#{carritoBean.cCard}" > <f:validator validatorId="creditCardTypeValidator" /> </h:inputHidden> <a4j:commandButton value="Credit Card Type Validate" action="#{carritoBean.validateCCType}" > <f:ajax execute="@form" render="@form :outCCDataPanel :outCCDataForm" /> </a4j:commandButton> </h:panelGrid> </a4j:outputPanel> </h:panelGrid> </h:form> </h:panelGroup>
and here is the bean code,
public void changeCCType(ValueChangeEvent event) { cCard = null != event.getNewValue() ? (String)event.getNewValue() : null; System.out.println("Selected Credit Card: " + cCard); cCardSelected = (cCard != null); } public void validateCCType() { showCCType = cCardSelected; }
What I pretend is to catch cCard in the valueChangeListener event
and once it is set validate.
But I do not why this does not work.
Any suggestion will be appreciated.
Thanking in advance,
Jose