如果两个字符串具有不同的值,则在比较输入文本后更改背景颜色

时间:2016-08-15 08:50:08

标签: jsf primefaces

我必须在页面上使用单选按钮和文本字段。如果单击第一个单选按钮,则输入文本将填充数据。如果单击第二个单选按钮,则相同的表单将更新并显示包含新信息的字段。在这两种情况下,我都会调用两个不同的函数来获取结果。默认情况下,当我打开页面时,会选择第一个单选按钮。 我必须在第一个单选按钮上为输入文本着色,其中第一个和第二个单选按钮中的数据不同。我必须比较来自例如的值(第一个单选按钮的名称输入文本值是否等于第二个单选按钮的名称输入文本值)。怎么做?我是PrimeFaces的新手

<p:outputLabel for="name" value="#{msg['label.name']}" />   
<p:inputText id="name" value="#{tab.radioButton=='First' ? tab.data.name1 : tab.data.name2}" disabled="true"  />

1 个答案:

答案 0 :(得分:0)

选择单选按钮时需要ajax来更新托管bean字段,将条件类添加到输入字段并刷新/更新它。

<强> XHTML

<h:form id="myForm">
    <p:selectOneRadio value="#{tab.radioButton}">
        <f:selectItem itemLabel="Choice 1" itemValue="First" />
        <f:selectItem itemLabel="Choice 2" itemValue="Second" />
        <p:ajax event="change" update=":myForm:name"/>
    </p:selectOneRadio>

    <p:outputLabel for="name" value="Name" />   
    <p:inputText id="name" value="#{tab.radioButton=='First' ? tab.data.name1 : tab.data.name2}" disabled="true" 
                 styleClass="#{tab.radioButton == 'First' ? 'first-radio-checked' : 'other-radio-checked'}"/>
</h:form>

<强> CSS

#myForm .first-radio-checked {
    background-color: green;
}

#myForm .other-radio-checked {
    background-color: red;
}