JSF,jQuery插件和花哨的表单

时间:2010-08-19 14:19:57

标签: java jquery forms jsf seam

我正在建立一个小网站,现在我遇到了一个问题:客户希望他的表单元素看起来“花哨”,所以我们必须坚持设计。我用Google搜索jqTransform完全符合我/他的需求。现在:我正在使用seam和richfaces来构建页面。我必须在我的表单上应用jqTransform,但我有几个选项填充其他选项,这会强制我的表单元素上的reRender,这可能不再是“花式”样式了。有没有办法让jquery插件再次应用到我的组件?

这里澄清的是我的一个xhtmls

<ui:define name="body">
       <h:form id="nextForm">
        <rich:panel >
            <f:facet name="header">Profil</f:facet>
            <a:outputPanel id="profilPanel">
            <s:decorate id="techTypeField" template="layout/edit.xhtml">
                    <ui:define name="label">Chosse Tech</ui:define>
                       <h:selectOneRadio id="techTypeCheckbox" value="#{Profil.technologyType}" required="true" immediate="true">
                            <s:selectItems value="#{Profil.technologyTypes}" var="elem" label="#{elem.name}" id="typeId"/>
                            <s:convertEntity/>
                            <a:support event="onchange" reRender="profilPanel" ajaxSingle="true"/>
                       </h:selectOneRadio>
                </s:decorate>
              <s:decorate id="productLineField" template="layout/edit.xhtml" rendered="#{Profil.technologyType.productLines.size > 0}">
                    <ui:define name="label">Choose Product</ui:define>
                       <h:selectOneMenu id="productLinesCheckbox" value="#{Profil.productLine}" required="true"  immediate="true" styleClass="dropdown">
                            <s:selectItems value="#{Profil.technologyType.productLines}" var="productLine" label="#{productLine.id.id}" id="productlineId" noSelectionLabel="Choose"/>
                            <s:convertEntity/>
                            <a:support event="onchange" reRender="profilPanel" ajaxSingle="true" />
                       </h:selectOneMenu>
                </s:decorate>
             <s:decorate id="machineField" template="layout/edit.xhtml" rendered="#{Profil.productLine.machines.size > 0}">
                    <ui:define name="label">Choose Machine</ui:define>
                       <h:selectOneMenu id="machinesCheckbox" value="#{Profil.machine}" required="true" styleClass="dropdown">
                            <s:selectItems value="#{Profil.productLine.machines}" var="machine" label="#{machine.machine}" id="machineId" noSelectionLabel="Choose"/>
                            <s:convertEntity/>
                       </h:selectOneMenu>
                </s:decorate>
            </a:outputPanel>
        <div style="clear:both"/>
        </rich:panel>
             <div class="actionButtons">
                <h:commandButton id="next" value="Weiter zu SERVICES"
                        action="#{Profil.next}" styleClass="button_next"/>
            </div>
        </h:form>
</ui:define>

2 个答案:

答案 0 :(得分:0)

您可以(必须?)在第一个选择框中选择一个选项时进行ajax调用,以填充另一个选项。

有关如何使用jQuery执行此操作的示例,请参阅Auto-populating Select Boxes using jQuery & AJAX

答案 1 :(得分:0)

我通过使用richface下拉元素解决了我的问题,该元素可以自定义我想要的方式。