2016-07-16 23 views

Antwort

1

Update 18. Juli 2016: Inspiriert von Ihrer Frage habe ich begonnen, eine <b:radiobutton /> Komponente zu implementieren, die flexibler ist als ihr Standard-JSF-Gegenstück. Es wird mit der nächsten Version von BootsFaces veröffentlicht - wahrscheinlich 1.0, die auf JavaOne 2016 zurückzuführen ist. Bis dahin folgen Sie dem unten stehenden Rezept.

Wir haben nicht versucht <b:radioButton /> noch, aber man kann es simulieren, indem ein verstecktes Eingabefeld hinzufügen und einig JavaScript-Code:

<b:panel title="Survey" look="primary"> 
    <p>Which Java version do you use?</p> 
    <div class="radio"> 
     <label onclick="$('.hidden-optradio').val(7)"> 
     <input type="radio" name="optradio" value="7" /> 
     Java 7 
     </label> 
    </div> 
    <div class="radio"> 
    <label onclick="$('.hidden-optradio').val(8)"> 
     <input type="radio" name="optradio" value="8" /> 
     Java 8 
     </label> 
    </div> 
    <h:inputText value="#{radiobuttonBean.javaVersion}" styleClass="hidden-optradio" pt:type="hidden" /> 
    <script>$('input[name=optradio][value=#{radiobuttonBean.javaVersion}]').attr("checked", "checked");</script> 
    <b:commandButton value="submit your choice" action="#{radiobuttonBean.submit}" look="primary" /> 
    <b:messages /> 
    </b:panel> 

Wenn Sie AJAX benötigen, implementieren sie durch eine verstecktes <b:commandButton update="someRegion" onclick="ajax:myBean.myMethod()" /> Hinzufügen und ruft die click() Methode dieser Taste in der onclick Handler der Etiketten:

<label onclick="$('.hidden-optradio').val(8);$(.ajax-button).click();"> 
    <input type="radio" name="optradio" value="8" /> 
    Java 8 
    </label> 
</div> 
... 
<b:commandButton value="submit your choice" 
       action="#{radiobuttonBean.submit}" look="primary" 
       update="@form" 
       style-class="hidden ajax-button" 
       />