PrimeFaces inputText aktivieren/deaktivieren

Ich habe zwei radio-buttons auf JSF2/PrimeFaces Seite, die ich brauche, um zu aktivieren/deaktivieren einer inputText Feld nach der Wahl.

<h:form prependId="false">
    <p:panelGrid id="notif">
        <p:row id="notif1">
            <p:column>
                <h:outputText value="label" />
            </p:column>
            <p:column>
                <p:selectOneRadio id="radiobuttons" value="#{state.radioStatus}" layout="pageDirection">
                    <f:selectItem itemLabel="enable" itemValue="enable" />
                    <f:selectItem itemLabel="disable" itemValue="disable" />
                    <p:ajax update="date" />
                </p:selectOneRadio>
            </p:column>
            <p:column>
                <p:inputText id="date" value="#{state.infoDate}" disabled="#{!state.checkStatus}" >
                </p:inputText>
                <p:inputText id="test" value="#{state.infoDateTest}">
                </p:inputText>
            </p:column>
        </p:row>
    </p:panelGrid>
</h:form>

Auch diese alle in einem tab, aber es gibt keine verschachtelten Formen überprüft, wenn Sie die generierten html-Code. Die Felder scheinen, um die id der Registerkarte, aber Sie scheinen richtig zu sein, wie dies (funktionierte nicht wenn versucht die id Schreibweise 'tabView:date' für die ajax.)

Das problem ist, dass beim betreten der Seite, der 'eigentliche' text-Feld ist standardmäßig deaktiviert und sollte aktiviert werden, wenn die radio-Taste, um es zu aktivieren. Wenn Sie die radio-Taste status aktualisiert, ich kann sehen, dass das Ereignis registriert ist, auf der server-Seite und den inputText Feld wird "visuell" aktiviert (es ist standardmäßig deaktiviert, wie soll). Aber das Feld ist nicht "Isoliertes" nach der Aktivierung, so kann es nicht zu schreiben.

Je bizarrer wird es, wenn ich Hinzugefügt die 'test' inputText Feld, das nicht es selbst aktiviert/deaktiviert werden über radio-buttons. Auf einer frischen Seite laden, können Sie es schreiben, aber nach der änderung der radio-Taste status, es ist nicht mehr beschreibbar (der text, der eingegeben wurde, vor der ajax-Aufruf, wird bleiben, ist aber nicht editierbar).

Aber die radio-buttons weiter und auslösen von Ereignissen auf der server-Seite.

Könnte jemand darauf hinweisen, was ich tun kann falsch, oder könnte das ein bug mit PrimeFaces?

//Update
Wie gesagt, die managed bean funktioniert wie soll, also ich sehe keine Probleme gibt, aber hier ist der code (vereinfacht und umbenannt für die Lesbarkeit, als die relevanten Teile stammen aus einem größeren Zusammenhang).

@ManagedBean(name = "state")
@SessionScoped
public class ExampleBean implements Serializable {

    private static final String disable = "disable";
    private static final String enable = "enable";
    private String text;
    private List<TestRow> rows = null;
    private TestRow row = null;
    private String radioStatus = "enable";
    private String infoDate = "";
    private String infoDateTest = "";

    @PostConstruct
    public void initEmpty() {
    }

    public String getRadioStatus() {

        return this.radioStatus;
    }

    public void setRadioStatus(String radioStatus) {

        this.radioStatus = radioStatus;
    }

    public String getInfoDate() {

        return infoDate;
    }

    public void setInfoDate(String infoDate) {

        this.infoDate = infoDate;
    }

    public String getInfoDateTest() {

        return infoDateTest;
    }

    public void setInfoDateTest(String infoDateTest) {

        this.infoDateTest = infoDateTest;
    }

    public boolean isCheckStatus() {

        return this.radioStatus.equalsIgnoreCase(enable) ? true : false;
    }
}
Die PF-version sind Sie den Umgang mit? Auch könnte Sie veröffentlichen Sie Ihre managed-bean-code?
Sorry, habe vergessen, dass Informationen. PrimeFaces 3.5 (Erweiterungen 0.6.3).
Sollten erraten hatte. Ich habe versucht, diesen code oben auf einer test-Projekt von mir, ohne die zusätzlichen Sachen auf der "eigentlichen" Seite, und jetzt habe ich dieses arbeiten. Nächste Schritt zu sein scheint, indem es in einem tab und die Lösung, die andere Komponente/Funktionalität auf die eigentliche Seite.
Werke in tab.
Die meisten der Zeit beste Lösung ist, um zu versuchen, sowas wie du hat in einem test-Projekt. Froh zu sehen, dass es funktioniert 😉

InformationsquelleAutor Ville Myrskyneva | 2013-10-14

Schreibe einen Kommentar