2013-02-19 89 views
0

JQuery的面對的問題,同時驗證電子郵件地址

$(document).ready(function() { 
    var EmailContainer = $('#EmailContainer'); 
    var url = EmailContainer.attr('data-url'); 
    EmailContainer.load(url, function() { 
     var Emailform = $('#EmailForm'); 
     $.validator.unobtrusive.parse(Emailform); 
     Emailform.submit(function() { 
      debugger; 
      var Emailform = $(this); 
      if (Emailform.valid()) { 
       var SendEmailUrl = EmailContainer.attr('Json-Url'); 
       var UserModel = { From: $('#From').val(), To: $('#To').val(), 
         Subject: $('#Subject').val(), 
         Description: $('#Description').val() } 
       $.post(SendEmailUrl, UserModel, function (data) { 
        Emailform.html(data); 
        Emailform.removeData('validator'); 
        Emailform.removeData('unobtrusiveValidation'); 
        $.validator.unobtrusive.parse(Emailform); 
       }); 
      } 
      return false; 
     }); 
    }); 
}); 

型號

public class User 
    { 
     [Required(ErrorMessageResourceType = typeof(Resource1), 
       ErrorMessageResourceName = "From")] 
     [DataType(System.ComponentModel.DataAnnotations.DataType.EmailAddress, 
       ErrorMessageResourceType = typeof(Resource1), 
       ErrorMessageResourceName = "InvalidEmail")] 
     [DisplayName("From Email Address")] 
     public String From { get; set; } 

     [Required(ErrorMessageResourceType = typeof(Resource1), 
        ErrorMessageResourceName = "To")] 
     [DataType(System.ComponentModel.DataAnnotations.DataType.EmailAddress, 
        ErrorMessageResourceType = typeof(Resource1), 
        ErrorMessageResourceName = "InvalidEmail")] 
     [DisplayName("To Email Address")] 
     public String To { get; set; } 

     [Required(ErrorMessageResourceType = typeof(Resource1), 
        ErrorMessageResourceName = "Subject")] 
     [DisplayName("Subject")] 
     public String Subject { get; set; } 

     [Required(ErrorMessageResourceType = typeof(Resource1), 
        ErrorMessageResourceName = "Description")] 
     [DisplayName("Description")] 
     public String Description { get; set; } 
    } 

問題 - 不顯示的電子郵件地址無效

回答

2

問題 - 不顯示驗證的電子郵件地址無效

我不能看到你的代碼,你沒有任何驗證的任何地方。如果你想要做驗證,然後用相應的模型上的財產屬性驗證:如果這是旨在爲電子郵件

[Required(ErrorMessageResourceType = typeof(Resource1), 
     ErrorMessageResourceName = "From")] 
[DataType(System.ComponentModel.DataAnnotations.DataType.EmailAddress, 
     ErrorMessageResourceType = typeof(Resource1), 
     ErrorMessageResourceName = "InvalidEmail")] 
[DisplayName("From Email Address")] 
[RegularExpression("GET A REGEX TO VALIDATE AN EMAIL FROM HERE: http://www.regular-expressions.info/email.html")] 
public string From { get; set; } 

顯然同樣代表了你的To性質爲真:

[Required(ErrorMessageResourceType = typeof(Resource1), 
      ErrorMessageResourceName = "To")] 
[DataType(System.ComponentModel.DataAnnotations.DataType.EmailAddress, 
      ErrorMessageResourceType = typeof(Resource1), 
      ErrorMessageResourceName = "InvalidEmail")] 
[DisplayName("To Email Address")] 
[RegularExpression("GET A REGEX TO VALIDATE AN EMAIL FROM HERE: http://www.regular-expressions.info/email.html")] 
public string To { get; set; } 

這麼下去在這裏得到一個電子郵件的正則表達式:http://www.regular-expressions.info/email.html

-1

System.ComponentModel.DataAnnotations.DataType.EmailAddress驗證是不是驗證電子郵件。它被用於ASP.Net MVC可以決定如何顯示該字段的值。

您必須編寫自己的電子郵件驗證邏輯。 如果我們將System.ComponentModel.DataAnnotations.DataType.EmailAddress應用於任何屬性,那麼該字段將以超鏈接顯示,而不是正常文本,其中會添加「mailTo」鏈接。通過寫入自定義數據註釋來添加自己的驗證電子郵件地址的邏輯。

乾杯

+0

你在談論自定義屬性嗎? – SMC 2013-02-19 11:10:15

+0

是的,通過繼承System.ComponentModel.DataAnnotations.ValidationAttribute類來編寫屬性,並將邏輯添加到IsValid()方法中。 – 2013-02-19 11:14:18

相關問題