面对的问题,同时验证电子邮件地址
问题描述:
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; }
}
问题 - 不显示的电子邮件地址无效
答
问题 - 不显示验证的电子邮件地址无效
我不能看到你的代码,你没有任何验证的任何地方。如果你想要做验证,然后用相应的模型上的财产属性验证:如果这是旨在为电子邮件
[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
答
System.ComponentModel.DataAnnotations.DataType.EmailAddress
验证是不是验证电子邮件。它被用于ASP.Net MVC可以决定如何显示该字段的值。
您必须编写自己的电子邮件验证逻辑。 如果我们将System.ComponentModel.DataAnnotations.DataType.EmailAddress
应用于任何属性,那么该字段将以超链接显示,而不是正常文本,其中会添加“mailTo”链接。通过写入自定义数据注释来添加自己的验证电子邮件地址的逻辑。
干杯
你在谈论自定义属性吗? – SMC 2013-02-19 11:10:15
是的,通过继承System.ComponentModel.DataAnnotations.ValidationAttribute类来编写属性,并将逻辑添加到IsValid()方法中。 – 2013-02-19 11:14:18