【问题标题】:JSF - Select a RadioButton and invisible an outputTextJSF - 选择一个 RadioButton 并且不可见一个 outputText
【发布时间】:2012-05-25 12:37:31
【问题描述】:

我的 xhtml 页面中有一个单选按钮和一个 outputText。

当我选择单选按钮时,我希望 outputText 可见, 当我取消选择单选按钮时,OutputText 将不可见..

什么是可见/不可见标签?以及如何使用?

有人知道吗?

谢谢

【问题讨论】:

    标签: java jsf jsf-2 visible invisible


    【解决方案1】:

    您可以检查输出文本父级的rendered 属性中的单选按钮值。您可以在单选按钮组内使用<f:ajax> 来更新单选按钮每次更改时输出文本的父级。

    启动示例:

    <h:form id="form">
        <h:selectOneRadio value="#{bean.radio}">
            <f:selectItem itemValue="one" itemLabel="This should hide output text" />
            <f:selectItem itemValue="two" itemLabel="This should show output text" />
            <f:ajax render="output" />
        </h:selectOneRadio>
        <h:panelGroup id="output">
            <h:outputText value="output text" rendered="#{bean.radio == 'two'}" />
        </h:panelGroup>
    </h:form>
    

    请注意,您不能指向输出文本本身的 id,因为 ajax render 需要一个始终呈现的组件以更新其内容。


    更新 根据您似乎表明您正在寻找客户端解决方案而不是服务器端解决方案的 cmets。在这种情况下,只需获取基本的 JavaScript。

    <h:form id="form">
        <h:selectOneRadio value="#{bean.radio}" onclick="document.getElementById('form:output').style.display = (value == 'two' ? 'block' : 'none')">
            <f:selectItem itemValue="one" itemLabel="This should hide output text" />
            <f:selectItem itemValue="two" itemLabel="This should show output text" />
        </h:selectOneRadio>
        <h:outputText id="output" value="output text" style="display: #{bean.radio == 'two' ? 'block' : 'none'}" />
    </h:form>
    

    【讨论】:

    • 感谢 Balus,但我不想渲染它。我只想隐形。
    • 所以你想完全在客户端执行它?然后查看答案更新。
    猜你喜欢
    • 1970-01-01
    • 2012-07-03
    • 2022-01-05
    • 2016-02-25
    • 2011-05-04
    • 2018-01-12
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    相关资源
    最近更新 更多