0

email addressが選択された場合にフォームのフィールドが空にならないようにするために、Command オブジェクトにカスタマイズされたバリデーターを作成したいと考えていますnotifyMe checkbox

これを実装する私の最新の試みは次のとおりです。

email(blank: true, nullable: true, email: true,
                  validator: {email, creditProviderCommand ->
                              if (creditProviderCommand.notifyMe == 'on')
                                    return email.size() > 0})

email != nullandも試しましたが、どちらの場合も機能しません。つまり、チェックを入れてフィールドを空白のままemail != ''にしても、フォームの送信は受け入れられます。notifyMe checkboxemail address

アクションのコードは、検証エラーを適切に処理します (一意の制約も)。私が間違っていることについて何か考えはありますか?

ご助力ありがとうございます。

4

1 に答える 1

0

上記のコードは私には問題ないようです。creditProviderCommand.notifyMe == 'on'チェックボックスがオンになっていることを 100% 確信していますか?

notifyMe チェックボックスがあっても、フォームの送信は受け入れられます

検証エラーが発生した場合でも、フォームの送信は常に受け入れられます。検証エラーをチェックし、検証が失敗した場合に何をすべきかを決定するのはあなたの責任です。

def myAction = {MyCommand cmd ->

  if (cmd.validate()) {
    // code to be executed when validation succeeds
  } else {
    // code to be executed when validation fails
  }
}
于 2011-09-05T11:53:20.793 に答える