2016-03-25 6 views
1

に私はフィールドを持つモデルMVC 3 - 変更フィールド値事前検証

[Required(ErrorMessage = "Email Address is required")] 
    [RegularExpression(@"^[a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$", ErrorMessage = "Not a valid email address.")] 
    [Display(Name = "Email Address")] 
    public virtual string EmailAddress { get; set; } 

を持っていると私は、電子メールの先頭に空きスペースがある場合、検証は失敗します。私はそれが検証される前に、フィールドをトリミングするJQueryメソッドを記述したいと思います。 ぼかしを付けてみましたが、ぼかしは検証後に実行されます。 どうすればこの問題を解決できますか?

ありがとうございました。

+0

データアノテーションは、フォームがボケで送信されないときに起動します。 –

+0

@KartikeyaKhoslaデータ注釈は、一度フォームが提出されるとぼかしでも発生します。 – anomepani

+0

このフィールドをオンにするだけでトリミングしたくないですか? –

答えて

0

それを修正する最も簡単な方法は、電子メールの前後にスペースを許可するように正規表現を変更するには、次のようになります。

"^ *[a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4} *$" 

あなたはそれを保存する前に、サーバー側でフィールドをトリミングすることができます。

正規表現の代わりにEmailAddressAttributeの使用をお勧めします。
クライアント側では、次のようなスペースを削除できます。 jquery validate - replace commas in field before validation occurs

関連する問題