2010-10-25 12 views
2

Bonjour, c'est mon code. Ça ne marche pas pour moi. Mais cela fonctionne dans la solution d'un ami. Je ne sais pas quelle est la raison. Je ne reçois aucune erreur. Tout semble aller bien. Mais si je clique sur mon radiobutton, rien ne se passe. Je deviens fou l'aide de pls!JSF h: problème d'étiquette ajax. La grille de données ne se reconnait pas

<h:form id="form"> 
      <h:panelGrid id="baseData" columns="2"> 
       <h:selectOneRadio value="#{billing.paymentType}" id="paymentType"> 
        <f:selectItem itemValue="cred" itemLabel="credicard" /> 
        <f:selectItem itemValue="bill" itemLabel="bill" /> 
        <f:ajax render="credinfo" /> 
       </h:selectOneRadio> 
      </h:panelGrid> 
      <h:panelGrid id="credinfo" columns="2"> 
       <h:outputText value="bla" rendered="#{billing.paymentType=='cred'}"/> 
      </h:panelGrid> 
     </h:form> 

Maintenant, je travaille .. Je ne sais pas pourquoi

Répondre

2

Lorsque vous mettez <f:ajax> l'intérieur d'un composant UIInput, l'événement DOM généré, il écoute sur est par défaut change. Cet événement n'est déclenché que lorsque la valeur d'entrée est modifiée et perd le focus. Donc, pour le faire virer en cas de boutons radio, vous devez cliquer sur le bouton radio et ensuite cliquer ailleurs sur la page afin qu'il perd le focus. Ce n'est pas un problème JSF, mais juste la nature (confuse) de HTML/JS.

Habituellement, pour accrocher un changement d'un radiobutton HTML/case à cocher immédiatement, vous préférez utiliser l'événement click à la place.

<f:ajax event="click" render="credinfo" /> 

Encore une fois, ce n'est pas un problème JSF. Le même "problème" se manifeste aussi bien sur HTML/JS.

détail intéressant est par la façon dont il fonctionne exactement de la même manière sur les champs de saisie de texte, mais que personne ne se plaint que change seulement obtenir le feu sur le flou (lorsque l'élément perd le focus) :)

+0

Note intéressante sur le texte événements 'change' de champs - J'ai l'impression que cette petite information sauvera de quelques maux de tête dans le futur ... –