在<h:selectoneradio> </h:selectoneradio>中禁用用户选择

时间:2011-09-21 08:36:12

标签: jsf jsf-2 jsf-1.2

我正在尝试禁用标记中的用户选择。

    <h:selectOneRadio id="wildcard"   value="#{NewService.isWildCard}" label="#{msg.org_IsWildCard}" readonly="true" layout="lineDirection">              
                                        <f:selectItem id="yes" itemLabel="YES" itemValue="1" />
                                        <f:selectItem id="no" itemLabel="NO" itemValue="0" />                                       
</h:selectOneRadio> 

然而,在我的GUI上,我仍然可以选择单选按钮值。 请告诉我代码中有什么问题。而且BackingBean代码非常简单..我只是在backingBean中传递0或1 ...

请指导我如何在

中禁用用户选择

3 个答案:

答案 0 :(得分:5)

这确实是JSF生成的HTML <input type="radio">元素的不直观行为。您的问题基本上有两种解决方案:

  1. 使用disabled="true"代替readonly="true"

    <h:selectOneRadio disabled="true">
    
  2. 添加一个返回false的onclick处理程序:

    <h:selectOneRadio onclick="return false;">
    

答案 1 :(得分:2)

使用selectItems中的itemDisabled属性:

<f:selectItem id="yes" itemLabel="YES" itemValue="1" itemDisabled="true"/>

答案 2 :(得分:0)

<h:selectOneRadio id="wildcard"   value="#{NewService.isWildCard}" label="#{msg.org_IsWildCard}" readonly="true" layout="lineDirection">              
     <f:selectItem id="yes" itemLabel="YES" itemValue="1" itemDisabled="#{NewService.type == 1 }"/>
     <f:selectItem id="no" itemLabel="NO" itemValue="0" itemDisabled="#{NewService.type == 1 }"/>
</h:selectOneRadio>