Grails - объект Command, настраиваемый условный валидатор
Я хотел бы создать настраиваемый валидатор в моем объекте 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
проверил и email address
поле оставлено пустым.
Код действия правильно обрабатывает ошибку проверки (даже уникальное ограничение). Есть идеи, что я делаю не так?
Большое спасибо за Вашу помощь.
1 ответ
Код выше выглядит хорошо для меня. Вы на 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
}
}