2016-07-23 27 views
0

Ich möchte Bootstrap-Toggle (http://www.bootstraptoggle.com/) mit JSF verwenden. Die Änderung in der Checkbox wird jedoch nicht erkannt. Hier ist mein Beispiel (auf der Grundlage dieser Antwort Ajax render not working on SelectBooleanCheckbox):Verwenden von Bootstrap-Toggle mit JSF

<h:form id="searchForm"> 
    <h:panelGroup id="searchPanel">  
    <h:selectBooleanCheckbox binding="#{searchCheckbox}" value="true" pt:data-toggle="toggle"> 
     <f:ajax render="searchForm:searchPanel" /> 
    </h:selectBooleanCheckbox> 
    <h:panelGroup rendered="#{searchCheckbox.value}"> 
     aaa 
    </h:panelGroup> 
    <h:panelGroup rendered="#{not searchCheckbox.value}"> 
     bbb 
    </h:panelGroup> 
    </h:panelGroup> 
</h:form> 

Wenn ich entfernen pt: Daten-Toggle = „Toggle“ es richtig funktioniert und ich sehe „aaa“, wenn das Kontrollkästchen aktiviert ist und „bbb“, wenn Es ist deaktiviert. Wenn ich es jedoch nicht entferne, sehe ich die Ein/Aus-Umschalttaste, aber ich sehe immer "aaa", wenn ich den Wert ändere.

Irgendeine Idee, wie man das löst?

Antwort

0

Endlich habe ich die Lösung. Das Problem war, dass das Ereignis, das von jsf erstellt wurde, onclick war und es onchange sein musste. So funktioniert's:

<h:form id="searchForm"> 
    <h:selectBooleanCheckbox binding="#{searchCheckbox}" value="true" pt:data-toggle="toggle"> 
    <f:ajax event="change" render="searchForm:searchPanel" /> 
    </h:selectBooleanCheckbox> 
    <h:panelGroup id="searchPanel"> 
    <h:panelGroup rendered="#{searchCheckbox.value}"> 
     aaa 
    </h:panelGroup> 
    <h:panelGroup rendered="#{not searchCheckbox.value}"> 
     bbb 
    </h:panelGroup> 
    </h:panelGroup> 
</h:form>