JSF f:ajax écouteur pas appelé

Je suis en train d'avoir une h:inputText passer avec un autre lorsque h:commandButton est cliqué. Pour ce faire, je suis en train d'attacher une f:ajax commande avec le h:commandButton, avec l'auditeur de la définition de la valeur sur le haricot (choix de l'affichage), et ré-rendu de la région.

J'ai essayé d'utiliser le port d'écoute sur le f:ajax, actionListener sur le h:commandButton action sur le h:commandButton à exécuter sur le f:ajax. Rien n'a fonctionné. Le mothed je suis en train d'appel n'est pas appelée à tous - il n'est pas println (voir ce qui suit).

La panelGroup est en cours de re-rendus, c'est pourquoi j'ai besoin de la onevent attribut qui ré-attache un peu de JavaScript (indice de texte basée sur le titre (j'avais une question précédente concernant cette).

La méthode que je suis en train d'appel:

public void morePressed(AjaxBehaviorEvent e) {
    easySearch = !easySearch;
    System.out.println("Made it!");
}

La JSF segment qui n'est pas de travail (note de la dernière h:commandButton est d'essayer de re-rendre la panelGroup):

<h:form>
    <h:panelGroup id="switchSearchTexts">
        <h:inputText accesskey="s" alt="Search" id="searchBoxPeople" title="Search Plebeians" valueChangeListener="#{peopleBean.simplePersonQuery}" size="25" rendered="#{peopleBean.easySearch}">
            <f:ajax render="peopleDataTable" event="keyup" />
        </h:inputText>

        <h:inputText accesskey="s" alt="Search First Name" id="searchBoxFN" title="Search First Name" size="25" rendered="#{!peopleBean.easySearch}">
            <f:ajax render="peopleDataTable" event="keyup" />
        </h:inputText>
    </h:panelGroup>

    <div id="expandBox">
        <h:inputText id="searchBoxLN" alt="Search Last Name" styleClass="hideToggle" title="Search Last Name" size="25" />
        <h:inputText id="searchBoxAddress" alt="Search Address" styleClass="hideToggle" title="Search Address" size="25" />
    </div>

    <h:commandButton type="button" styleClass="moreButtonAsText" id="moreButtonAsText" value="&#x25b8;More">
        <f:ajax listener="#{peopleBean.morePressed}" render="switchSearchTexts" event="click" onevent="callFunctionAjaxRequest"  />
    </h:commandButton>

C'est le JavaScript (jQuery) que j'attache le Plus de bouton sur pageload. Je donne pas parce que je pense que ça pourrait aider, mais je ne sais pas si cela pourrait interférer avec l'ajax auditeur en quelque sorte:

$(function() {
    textboxHint();
    $('input[id$="moreButtonAsText"]').toggle(function(e) {
        $(this).prop('value', '\u25c2Less');
        $(".hideToggle").show(300);
    }
    , function () {
        $(this).prop('value', '\u25b8More');
        $(".hideToggle").hide(100);
        $('input[id$="searchBoxAddress"]').prop('value', function() {
            return $(this).prop('title');
        });
        $('input[id$="searchBoxAddress"]').blur();
    });
});

Je n'ai aucune idée. Comme je l'ai dit, j'ai essayé actionListener sur h:commandButton avec divers appraoches là, ainsi que les diverses approches de l'auditeur sur l'ajax. Tout le monde peut voir pourquoi l'auditeur ne fonctionne pas?

Mise à jour:

Ce que j'ai fait, avant d'avoir une réponse, est la conversion de tout afficher et masquer basé sur JavaScript, avec des trucs que j'ai besoin cachés s'ils n'ont pas javascript initialement masqué, etc.

Cependant j'ai besoin de la f:ajax ailleurs, maintenant.

La solution est de sortir de l'événement="cliquer" sur le h:commandButton. Je encore ne sais maintenant pourquoi cela a été l'origine de la rupture, mais bon, tout ce qui fonctionne.

InformationsquelleAutor twmb | 2012-03-24