通过第一个文本字段的ajax验证数据后禁用第二个文本字段

时间:2012-03-06 17:45:32

标签: ajax jsf-2

在我尝试使用JSF 2.0时,我遇到了这样的场景。

我有两个文本字段 - 根据第一个字段的输入,使用

触发ajax调用
<f:ajax ... />

在响应回来后,我正在渲染第二个文本字段..但我想根据第一个字段值的某些服务器端验证禁用第二个文本字段。

我不想根据验证后在bean中设置的第三个属性来设置禁用样式。

有没有其他方法..

提前致谢

1 个答案:

答案 0 :(得分:4)

通过binding属性将第一个输入组件绑定到视图,并在第二个输入字段的disabled属性中使用UIInput#isValid()。如果验证在给定的输入组件上失败,它将返回false

<h:inputText binding="#{input1}" value="#{bean.input1}">
    <f:validator validatorId="yourValidator" />
    <f:ajax event="blur" render="input2" />
</h:inputText>
<h:inputText id="input2" value="#{bean.input2}" disabled="#{!input1.valid}" />