我想在我的Command对象中构建一个自定义验证器,以确保在选择email address
时表单的字段notifyMe checkbox
不会为空。
以下是我最近的实施尝试:
email(blank: true, nullable: true, email: true,
validator: {email, creditProviderCommand ->
if (creditProviderCommand.notifyMe == 'on')
return email.size() > 0})
我也尝试使用email != null
和email != ''
,但在两种情况下都不起作用,这意味着即使选中notifyMe checkbox
和{{1}也接受表单提交}字段留空。
操作代码正确处理验证错误(甚至是唯一约束)。 我知道我做错了什么?
非常感谢你的帮助。
答案 0 :(得分:0)
上面的代码对我来说很好看。在选中复选框时,您是否100%确定creditProviderCommand.notifyMe == 'on'
?
即使使用notifyMe复选框
,也会接受表单提交
即使存在验证错误,也始终接受表单提交。您有责任检查验证错误并确定验证失败时要执行的操作,例如
def myAction = {MyCommand cmd ->
if (cmd.validate()) {
// code to be executed when validation succeeds
} else {
// code to be executed when validation fails
}
}