我正常的客户端验证工作正常,我添加一个不会触发的正则表达式要求,甚至不是必需的验证触发器。
型号:
[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