2011-08-08 58 views
0

我有兩個單選按鈕,它們是由JSF中的一個Backed bean的兩個實例變量支持的{這是要求,而不是與一個變量綁定}。而且,如果檢查一個,其他人應該被禁用。下面是我的代碼,它有什麼問題?爲什麼它不像我預期的那樣工作。JSF SelectOneRadio按鈕不能被禁用

適當的幫助讚賞。

<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> 

回答

1

單選按鈕沒有互相連接。

你可以做的只是綁定一個,並使用腳本取消選擇其他。在你的bean中做同樣的事情,當布爾a被設置爲true時,將b設置爲false,反之亦然。

+0

當單選按鈕發生變化時,我可以啓用/禁用提交按鈕,因此,以同樣的方式無法啓用/禁用這些拖放單選按鈕? –