2016-03-15 22 views
0

下面是我的代碼,我有控制器視圖中的電子郵件文本框和電話號碼文本框。 問題是當用戶開始輸入時,它顯示正則表達式驗證消息,我想要的是在用戶鍵入完整的電子郵件或電話號碼後顯示此消息。如何在焦點移出MVC中的文本框後顯示正則表達式驗證消息?

任何幫助表示讚賞。

由於

這是上視圖

<div class="editor-label"> 
      @Html.LabelFor(model => model.Seller_Email) 
     </div> 
     <div class="editor-field"> 
      @Html.TextBoxFor(model => model.Seller_Email, new { placeholder = "Email" }) 
      @Html.ValidationMessageFor(model => model.Seller_Email) 
     </div> 

代碼,這是上模型

[Required(ErrorMessage = "Email is required")] 
    [Display(Name = "Email")] 
    [RegularExpression(@"^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" + 
        @"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" + 
        @".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", 
        ErrorMessage = "Email is not valid")] 
    [Remote("EmailExists", "Account", HttpMethod = "POST", ErrorMessage = "Email already exists. Please enter a different Email")] 
    public string Seller_Email { get; set; } 

this is the error image

+1

默認情況下,它只會顯示錯誤消息時您選項卡超出控制的(如果你再回來選項卡中它會在每個關鍵擊中顯示它),所以還有其他事情正在進行。但爲什麼你不使用'[EmailAddress]'屬性進行驗證,而使用比你更好的正則表達式呢? –

+0

我唯一能想到的就是如果你在GET方法中添加'ModelState'(例如你的GET方法有一個參數,它是你的模型)。無論是或者你有一個覆蓋'驗證器'默認值的腳本。 –

+0

在這種情況下,它顯示錯誤,因爲用戶開始鍵入,我也在其他字段上使用正則表達式驗證,同樣的事情也發生在那裏 – Ashish

回答

-2

1代碼)使用onblur()功能和jQuery中驗證它。

2)刪除模型驗證。

+1

不會停止當前的驗證。 – CodeCaster

+1

但它仍然沒有意義。問題是:使用MVC,它整齊地連接到jQuery驗證,如何防止驗證踢在_while_打字?你的答案:刪除驗證並添加jQuery驗證。像這樣的答案並沒有真正的幫助。 – CodeCaster

0

我會推薦使用DataAnnotationExtensions。它以NuGet包的形式提供,這將驗證您可能認爲有用的其他驗證器的電子郵件地址。用此代替正則表達式,會不會驗證,而你打字 -

http://dataannotationsextensions.org/