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

Posted

技术标签:

【中文标题】通过第一个文本字段的 ajax 进行数据验证后禁用第二个文本字段【英文标题】:disabling second text field after data validation through ajax of first text field 【发布时间】:2012-03-24 05:57:09 【问题描述】:

当我在试验 JSF 2.0 时,我遇到了这样的场景。

我有两个文本字段 - 基于第一个字段的输入,使用触发 ajax 调用

<f:ajax ... />

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

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

还有其他方法吗..

提前致谢

【问题讨论】:

【参考方案1】:

通过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" />

【讨论】:

以上是关于通过第一个文本字段的 ajax 进行数据验证后禁用第二个文本字段的主要内容,如果未能解决你的问题,请参考以下文章

发生验证错误后,如何使用 PrimeFaces AJAX 填充文本字段?

Symfony3 + Select2 AJAX - 禁用选择验证

点击另一个 UITextField 后自动禁用键盘

PHP、MySQL、jQuery、AJAX:json 数据返回正确响应但前端返回错误

RxSwift:立即交付第一个项目,消除后续项目

在Touch UI cq对话框上禁用文本字段