如何在选择后仅显示一个微调器

时间:2014-02-12 22:55:22

标签: javascript jquery jsf primefaces

我想要做的是,如果用户选择一个单选按钮,单选按钮旁边会显示一个特定的微调器,所有微调器都会在加载时被隐藏,只有当单击按钮时才会显示一个与单选按钮相对应的微调器。单选按钮被选中,目前我让旋转器隐藏起来,但是我只能得到全部或者没有一个微调器出现,我该怎么限制呢?

这是我目前的代码:

            <p:outputLabel value="#{bundle.labelMarkRange}" for="range"  />
            <p:panelGrid columns="3">
                <p:selectOneRadio id="range" value="{formBean.number}" layout="grid" columns="1" required = "True"
                                  requiredMessage="#{bundle.messageSelectMarkRange}" > 
                    <f:selectItem itemLabel="0 - 19" itemValue="1" /> 
                    <f:selectItem itemLabel="20 - 39" itemValue="2" />  
                    <f:selectItem itemLabel="40 - 49" itemValue="4" />  
                    <f:selectItem itemLabel="50 - 59" itemValue="5" />
                    <f:selectItem itemLabel="60 - 69" itemValue="6" />  
                    <f:selectItem itemLabel="70 - 79" itemValue="7" />  
                    <f:selectItem itemLabel="80 - 100" itemValue="8" />  
                </p:selectOneRadio>  


                <p:outputPanel>  
                    <!-- look into validation for this to prevent any unwanted values, better than the min max etc -->
                    <p>
                        <p:spinner id="ajaxspinner0-19" value="#{spinnerController.number1}" 
                                   stepFactor = "1"  min="0" max="19" rendered="#{facesContext.postback}">  
                            <p:ajax update="ajaxspinnervalue" process="@this" />  
                        </p:spinner> 
                    </p>
                    <p>
                        <p:spinner id="ajaxspinner20-39" value="#{spinnerController.number1}" 
                                   stepFactor = "1"  min="20" max="39" rendered="#{facesContext.postback}">  
                            <p:ajax update="ajaxspinnervalue" process="@this" />  
                        </p:spinner> 
                    </p>

因此,例如,如果用户选择了0 - 19微调器,那么只应显示ajax微调器0-19

我该怎么做?

谢谢你们

1 个答案:

答案 0 :(得分:1)

每当您选择这样的单选按钮时,您都可以进行ajax调用

 <p:selectOneRadio id="range" value="#{formBean.number}" layout="grid" columns="1"   required = "True"
                              requiredMessage="#{bundle.messageSelectMarkRange}" > 
                <f:selectItem itemLabel="0 - 19" itemValue="1" /> 
                <f:selectItem itemLabel="20 - 39" itemValue="2" />  
                <f:selectItem itemLabel="40 - 49" itemValue="4" />  
                <f:selectItem itemLabel="50 - 59" itemValue="5" />
                <f:selectItem itemLabel="60 - 69" itemValue="6" />  
                <f:selectItem itemLabel="70 - 79" itemValue="7" />  
                <f:selectItem itemLabel="80 - 100" itemValue="8" />  

    <p:ajax process="@this" update="mySpinnerPanel" />
            </p:selectOneRadio>  

<p:outputPanel>  
                <!-- look into validation for this to prevent any unwanted values, better than the min max etc -->
                <p>
            <p:spinner id="ajaxspinner0-19" value="#{spinnerController.number1}" 
             stepFactor = "1"  min="0" max="19" rendered="#{formBean.number eq 1}">  
                        <p:ajax update="ajaxspinnervalue" process="@this" />  
                    </p:spinner> 
                </p>  
    <p:outputPanel>  

同样,您可以在面板中执行其他微调器。我给了你的输出面板,因为mySpinnerPanel按你的意愿改变它,而单选按钮的value属性中缺少#。

希望这有帮助