我正在使用JSF 2.0和primefaces。 我有一个页面在窗体内有几个输入,一个按钮使用ajax将新记录添加到表中。一切正常。然后我使用JavaScript添加了客户端验证。这是命令按钮的代码:
<p:commandButton value="Add" actionListener="#{reqAbsences.addPreLeaveDemand}"
onclick="return validateNewAbs()"
update="tableForm inputForm errorForm" />
如果验证失败,它将按预期工作,并且不会添加记录表。
传递验证时出现问题:记录已添加,但页面已重新加载(ajax无法正常工作)。如果我删除onclick="return validateNewAbs()"
ajax再次工作。
知道为什么会这样吗?
答案 0 :(得分:2)
您通过立即返回click
来覆盖默认的ajax true
事件。而是让它仅在false
上返回。
onclick="if (!validateNewAbs()) return false;"
然而,最好只使用JSF内置/自定义验证器在服务器端进行验证。这样您就不需要将验证重复到双方,并且验证仍然适用于JS禁用。