MVC 4客户端正则表达式未触发

时间:2014-05-22 10:03:12

标签: regex asp.net-mvc asp.net-mvc-4 unobtrusive-validation

我正常的客户端验证工作正常,我添加一个不会触发的正则表达式要求,甚至不是必需的验证触发器。

型号:

[Required]
[DisplayName("Mobile Number")]
[RegularExpression(@"^[0-9\-\+]{9,15}$", ErrorMessage = "specify the correct format for the Tel number")]
public string MobileNumber { get; set; }

查看:

@Html.EditorFor(model => model.MobileNumber)
@{ Html.ValidateFor(model => model.MobileNumber); }

我正在使用ValidateFor,因为验证错误会显示在工具提示中,这适用于正常的必填字段。

呈现HTML:

<input class="text-box single-line" data-val="true" data-val-regex="specify the correct format for the Tel number" 
data-val-regex-pattern="^[0-9\-\+]{9,15}$" data-val-required="The Mobile Number field is required." id="MobileNumber" 
name="MobileNumber" type="text" value="0823213456">

当我输入无效值(甚至将其留空)时,输入字段的class属性更改为class =“text-box single-line valid”

如果我从模型中删除正则表达式属性,则所需的验证会正确触发客户端

为什么此正则表达式验证不会按预期运行?

编辑: 捆绑配置:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                    "~/Scripts/jquery-{version}.js",
                    "~/Scripts/jquery-ui-{version}.js",
                    "~/Scripts/jquery.unobtrusive*",
                    "~/Scripts/jquery.validate*",
                    "~/Scripts/mvcfoolproof.unobtrusive.js"));

版本: jQuery Validation Plugin v1.11.1 jQuery JavaScript Library v1.10.2

0 个答案:

没有答案