PhoneAttribute的MVC客户端验证
MVC client side validation for PhoneAttribute
我有一个模型:
public class MyModel{
[Phone]
public string MyTel { get; set; }
}
在视图中:
@model MyModel
@Html.EditorFor(x => x.MyTel)
生成的HTML:
<input type="tel" value="" name="MyTel" id="MyTel" data-val-phone="The MyTel field is not a valid phone number." data-val="true" class="text-box single-line"/>
MyTel字段的客户端验证不起作用。如何做到这一点?
文章指导添加PhoneAttribute客户端验证支持或在JavaScript 中对抗Lookbacking
function initPhoneValidator() {
$.validator.addMethod("phone", function (value, element) {
if (this.optional(element)) {
return true;
}
var reverseValue = $.trim(value).split("").reverse().join("");
var reverseRegEx = new RegExp("^(''d+''s?(x|''.txe?)''s?)?(('')(''d+[''s''-''.]?)?''d+''(|''d+)[''s''-''.]?)*('')([''s''-''.]?''d+)?''d+''+?''((?!''+.*)|''d+)(''s?''+)?$", "i");
var match = reverseRegEx.exec(reverseValue);
return (match && (match.index === 0) && (match[0].length === value.length));
});
$.validator.unobtrusive.adapters.addBool("phone");
}
我在PhoneAttribute项目中应用的最简单的解决方案:
步骤1:添加这些注释
public class MyModel{
[Required(ErrorMessage = "You must provide a mobile number")]
[Phone]
[MaxLength(13)] //custom maximum length enabled
[MinLength(10)]//custom minimum length enabled
[RegularExpression("^[0-9]*$", ErrorMessage = "mobile number must be
numeric")]
public string MyTel { get; set; }
}
步骤2:添加这两个库
<script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.13.1/jquery.validate.js"></script>
<script src="//ajax.aspnetcdn.com/ajax/mvc/5.2.3/jquery.validate.unobtrusive.js"></script>
步骤3:在Web.config的appSettings下添加
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
注意:不要混淆mvc html助手和原始html,它可能会禁用客户端验证。
相关文章:
- 客户端单选按钮列表验证
- 如何在不使用mvc 4中的模型的情况下进行客户端验证
- ServiceStack JavaScript服务器事件客户端的身份验证
- MVC客户端验证的某个位置缺少链接
- 从javascript客户端验证REST服务
- asp.net web表单客户端验证始终回发
- 如何在文本框中验证客户端的youtube url
- 如何验证客户端上的Javascript没有被更改
- 检查验证组是否有效,而不启动验证客户端
- Ember用户身份验证(客户端和服务器端完全分离)
- 是否不可能通过/Regex_syntax/.test(str_to_test)验证客户端输入,其中Regex_synta
- 调试不显眼的验证(客户端)
- Asp.net MVC日期时间动态验证客户端日期格式
- 尝试访问HTML5电子邮件验证客户端
- 验证客户端日期范围
- 表单验证客户端和服务器端
- 如何验证客户端中文本框值的总和
- 验证客户端AngularJS上输入的图像文件维度
- JSON Web令牌(JWT)-验证客户端
- MVC 5 - 验证客户端上的特定字段