1

我有以下代码片段,并且未触发标准客户端 html 验证。如何触发标准验证并在有效时调用该操作。

<h:form>
<h:inputText type="text" value="#{myBean.value}">
<f:passThroughAttribute name="required" value="required" />
</h:inputText>
<h:commandButton value="submit" type="submit" action="#{myBean.save}">
<f:ajax execute="@form" render="@form" />
</h:commandButton>
</h:from>

如果没有 ajax,将触发客户端验证,如果输入为空,则不会发送表单。

我怎样才能用ajax达到这个目的?

4

1 回答 1

3

form.checkValidity()JSF ajax 引擎在处理请求之前不会检查 HTML5 。本质上,您需要onclick在命令按钮的属性中自己完成这项工作。如果它返回false,那么它将阻止 ajax 操作。

请注意,您永远不应该只依赖客户端验证,因为最终用户完全可以控制它。我强烈建议也添加服务器端验证。添加 ajax 时,您可以轻松地使用服务器端验证,并获得与客户端验证相同的用户体验。

也可以看看:

于 2013-08-28T10:55:34.567 回答