在使用ajax提交表单之前触发HTML5约束验证

时间:2013-08-27 21:39:51

标签: ajax html5 validation jsf jsf-2

我有以下代码段,并且未触发标准客户端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达到此目的?

1 个答案:

答案 0 :(得分:3)

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

请注意,您绝不应该依赖客户端验证,因为这完全可由最终用户控制。我强烈建议您添加服务器端验证。添加ajax时,您可以轻松地使用与客户端验证相同的用户体验进行服务器端验证。

另见: