私はこれを数回行った。最初はコントローラで検証を行っていましたが、これをクリーンアップし、クライアント側でjqueryで電子メール検証を終了しました。
この方法では、一致しない電子メールの周りを行き来する必要はありません。
メールが有効かどうかを確認するためのサンプルJavaScript関数です。これで、最初に入力したものをもう一度確認するだけです。
2番目のメールには、フォームに別のフィールドパラメータが必要です。
// simple function to check if a email is of a valid email type
function IsEmail(email) {
var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}
// method to check if email and confermation email is the same.
$("#signupForm").validate({
rules: {
...snip...
email1: {
required: true,
minlength: 5
},
email2: {
required: true,
minlength: 5,
equalTo: "#email1"
},
...snip...
},
messages: {
...snip...
email: {
required: "Please provide a email",
minlength: "Your email must be at least 5 characters long"
},
email2: {
required: "Please provide a confermation email",
minlength: "Your confermation email must be at least 5 characters long",
equalTo: "Please enter the same email as above"
},
...snip...
}
});
ありがとうございました。私のドメインクラスで "emailAgain"を定義したくない場合はどうすればよいですか? jQueryのようなものを使ってこれを処理する方法はありますか? – grailsDev
もちろん、これをJQueryで行うこともできますが、実際にはこれを処理する方法がいくつかあります。これは「標準的な」グレイルにうまく収まる1つの提案です。あまりにも多くのビジネスロジックを目に見えるように注意してください。ビューは表示する必要があります。 –
は@MichaelJ.Leeのようなものですが、いくつかの方法があります.1つは、クライアント上でフォームの送信を処理することです。サーバー側の電話をかける前に、2つの電子メールを比較して一致するかどうかを警告することができます。それ以外の方法は、2番目の電子メールでfocusoutイベントを処理し、2つの電子メールを比較するjQueryコードを起動することです。これが役に立ちます。 – allthenutsandbolts