validation - 单击特定按钮时如何跳过验证?

标签 validation jsf button jsf-2

我有一个表单,其中一个字段带有验证器。我有两个 h:commandButton:确定取消。当我输入错误的数据并单击取消时,我收到一条验证消息。我必须做什么才能在点击取消时验证器不运行?

最佳答案

如果您没有使用 ajax,或者仍在使用 JSF 1.x,并且您确实需要调用 cancel() 中的业务操作,方法(即仅重新加载页面是不够的),那么最好的选择是添加 immediate="true"到按钮。这样所有没有 immediate="true" 的输入字段处理时将被跳过。

<h:commandButton value="Cancel" action="#{bean.cancel}" immediate="true" />

在 JSF 2.x 上,更好的方法是通过 <f:ajax> 提交表单。 ,默认情况下仅处理 @this而不是@form .

<h:commandButton value="Cancel" action="#{bean.cancel}">
    <f:ajax />
</h:commandButton>

如果您想导航到此处的另一个页面,请添加 ?faces-redirect=truecancel()中的结果方法。

或者,如果您实际上根本不需要调用任何业务操作,则只需使用 <h:button>其中您直接指定(隐式)导航案例结果。

<h:button value="Cancel" outcome="previouspage" />

这基本上将通过 GET 请求重新加载页面。 <h:button> JSF 1.x 中不存在,但您也可以使用纯 HTML+JS。

另请参阅:

关于validation - 单击特定按钮时如何跳过验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6062923/

相关文章:

C# WPF 样式 : One Button Mouseover - One Button keep Image

javascript - 单击按钮时颜色不变

java - Servlet 过滤器不工作

java - 在 View 之间传递对象

html - 通过 CSS 向 IE8 中的提交按钮添加色调/颜色,同时保留 "glassy"外观?

php - Laravel 验证 - 如何检查给定数组中是否存在值?

jsf - 如何在其他定义内设置定义

c# - FluentValidation 和服务器+客户端远程验证器

以毫秒为单位的 HTML5 时间元素

python - 在 Python 中使用 cerberus 验证 boolean 值