Ido*_*Ran 2 javascript asp.net-mvc unobtrusive-validation asp.net-mvc-4
我正在使用ASP MVC 4并且我同时启用了ClientValidationEnabled和UnobtrusiveJavaScriptEnabled appSettings,但是当我提交具有不显眼的验证数据属性的表单时,即使它无效也会提交.出现验证消息,但表单仍然提交.
当然,我的浏览器启用了JavaScript.
请确保您已关联以下库
<script src="~/Scripts/jquery.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.js"></script>
Run Code Online (Sandbox Code Playgroud)
检查您的配置.这两个应该如下:
<appSettings>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)
别忘了添加:
@Html.ValidationMessageFor(m => m.FieldToValidate)
Run Code Online (Sandbox Code Playgroud)
对于主页面中的MVC4,请添加以下行
@Scripts.Render("~/bundles/jqueryval")
Run Code Online (Sandbox Code Playgroud)
并确保在下面的bundles.config行中存在.
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.unobtrusive*",
"~/Scripts/jquery.validate*"));
Run Code Online (Sandbox Code Playgroud)
一旦你添加了jquery.unobtrusive,你将遇到以下错误.
在jquery 1.9中不再提供live()函数,该函数已被弃用.
TypeError: $(…).live is not a function
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,你可以用.On手动替换.live,或者只是从nuget添加beta版本
Install-Package Microsoft.jQuery.Unobtrusive.Ajax -Pre
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4729 次 |
| 最近记录: |