Grails - объект Command, настраиваемый условный валидатор - PullRequest
0 голосов
/ 05 сентября 2011

Я хотел бы создать настраиваемый валидатор в моем объекте 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 Ответ

0 голосов
/ 05 сентября 2011

Код выше выглядит хорошо для меня.Вы на 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
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...