【问题标题】:Validate input onblur/on focus lost验证输入模糊/焦点丢失
【发布时间】:2012-09-25 15:11:15
【问题描述】:

我正在使用正则表达式对输入进行电子邮件验证,如下所示:

<h:inputText id="email" value="#{settingsBean.aFriendEmail}" required="true" label="Email" validatorMessage="#{settingsBean.aFriendEmail} is not valid">
    <f:validateRegex pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]" />
</h:inputText>
<p:message for="email" />

我想知道如何使该输入的验证onblur/on focus loss。 请告知如何实现,谢谢。

另外,我想将有效域限制为 .com、.net、.org 有什么建议吗?

【问题讨论】:

标签: validation jsf-2 primefaces


【解决方案1】:

添加一个&lt;f:ajax&gt;,它与blur 事件挂钩,并在完成时更新消息。

<h:inputText id="email" ...>
    ...
    <f:ajax event="blur" render="emailMessage" />
</h:inputText>
<p:message id="emailMessage" for="email" />

通过正则表达式限制电子邮件域是一个与 JSF 完全无关的单独问题。


与具体问题无关,你的validatorMessage不对。

validatorMessage="#{settingsBean.aFriendEmail} is not valid"

当验证失败时,模型值永远不会更新,因此这将总是打印初始值,该值可能为 null/空。您应该改为显示 component's submitted value

validatorMessage="#{component.submittedValue} is not valid"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-03
    • 2014-10-18
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    相关资源
    最近更新 更多