【发布时间】:2019-02-09 16:23:54
【问题描述】:
我正在使用带有 Primefaces 5.3 的 JSF,并且在启用/禁用命令按钮时遇到问题。
首先,我有这个输入:
<h:inputText id="series" value="#{bean.series}"
required="false" converterMessage="Please enter three digits" >
<f:validateRegex pattern="[0-9]{3}" />
<p:ajax event="keyup" update="download"/>
</h:inputText>
在backing bean中,这个字段是一个整数
private Integer series;
我的目标是在输入不为空时启用/禁用“下载”按钮。我不在乎它是否无效,但前提是它不包含任何字符。
<h:commandButton id="download" value="Download"
action="#{bean.download}"
disabled="#{empty bean.series}"/>
更新事件在 keyup 上触发,但由于验证,支持 bean 中的属性 'series' 始终为空。
您能帮我解决一下吗? 谢谢
【问题讨论】:
-
按钮 ID 在“更新”中不匹配
-
抱歉,只是编辑错误。我会编辑问题,id是正确的。
-
尝试将 process="series" 添加到 p:ajax
-
试过了,不行。调用了系列的吸气剂,但仍然是 null 。基本上我输入 'abcd' 但正则表达式与输入不匹配,因此它没有在 bean 中设置系列的值。如果后备 bean 中的 series 属性仍然为 null,则我的按钮未启用。
-
正确,没有理由启用您的按钮,因为由于该字段无效,您无论如何都无法提交它。但如果你真的想要这个,创造性地使用stackoverflow.com/questions/17926245/…,你就能得到答案
标签: validation jsf