我有以下代码段,并且未触发标准客户端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达到此目的?
答案 0 :(得分:3)
JSF ajax引擎在继续请求之前不检查HTML5的form.checkValidity()
。基本上,您需要在命令按钮的onclick
属性中自己完成这项工作。如果它返回false
,那么它将阻止ajax操作。
请注意,您绝不应该依赖仅客户端验证,因为这完全可由最终用户控制。我强烈建议您添加服务器端验证。添加ajax时,您可以轻松地使用与客户端验证相同的用户体验进行服务器端验证。