【问题标题】:JSF SelectOneRadio button can't be disabledJSF SelectOneRadio 按钮不能被禁用
【发布时间】:2011-08-08 08:14:15
【问题描述】:

我有两个单选按钮,它们由 JSF 中 Backed bean 的两个实例变量支持{这是要求,不要与一个变量绑定。}。并且,如果选中一个,则应禁用另一个。下面是我的代码,有什么问题吗?为什么它没有按我的预期工作。

感谢您提供适当的帮助。

    <h:graphicImage url="/images/orange_arrows.gif" />
       <h:outputLabel for="addBundle">
          <h:outputText value="Subscribe Bundle :" styleClass="item-name"/>
       </h:outputLabel>


    <h:selectOneRadio id="addBundle" value="#{accountAdjustmentBean.bundleAdded}" required="false"
                    onchange="enableSubmit( this.checked != bundleAdded );disableRadioButton('unsubscribe');">
                    <f:selectItem id="subscribe" itemValue="true"/>
       <h:message styleClass="errors" for="addBundle"/>
    </h:selectOneRadio>

    <h:panelGroup/>

    <h:graphicImage url="/images/orange_arrows.gif" />
       <h:outputLabel for="removeBundle">
          <h:outputText value="Unsubscribe Bundle" styleClass="item-name"/>
       </h:outputLabel>


    <h:selectOneRadio id="removeBundle" value="#{accountAdjustmentBean.bundleRemoved}" required="false"
                onchange="enableSubmit( this.checked != bundleRemoved );disableRadioButton('subscribe');">
            <f:selectItem id="unsubscribe" itemValue="true"/>
       <h:message styleClass="errors" for="removeBundle"/>
     </h:selectOneRadio>

<h:panelGrid columns="1" styleClass="adjustments-submit">
        <h:commandButton id="submitBtn" action="#{accountAdjustmentBean.addDataBundleAction}"
                     value="Submit"/>


<f:verbatim>
    <script  type="text/javascript">

        function enableSubmit( enable ) {
            document.getElementById('ccAcountStatus:submitBtn').disabled = !enable;
        }

        // Disable submit button on load (enable when account locked status changes)
        enableSubmit(false);

        function disableRadioButton(elementId)    {
            document.getElementById(elementId).disabled = true;
    }

        // save the account locked status at page load. used to detect if changed.
        var bundleadded = </f:verbatim><h:outputText value="#{accountAdjustmentBean.bundleAdded}"/><f:verbatim>

    </script>
</f:verbatim>

【问题讨论】:

    标签: java javascript html jsf web-applications


    【解决方案1】:

    单选按钮没有相互连接。

    您可以做的是只绑定一个并使用脚本取消选择另一个。在你的 bean 中做同样的事情,当布尔 a 设置为 true 时,将 b 设置为 false,反之亦然。

    【讨论】:

    • 当单选按钮发生变化时,我可以启用/禁用提交按钮,所以,我不能以同样的方式启用/禁用这两个单选按钮吗?
    猜你喜欢
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多