我正在使用MVC3。我想在提交页面时在客户端添加自定义检查。但是这样做默认验证不起作用...
@using (Html.BeginForm())
{
@Html.TextBoxFor(model => model.Title, new { maxlength = 250 , style = "width:450px;" })
@Html.ValidationMessageFor(model => model.Title)
<input type="submit" value="Submit" id="submit"/>
}
当我点击提交按钮时,我在下面写了一个验证
$('#submit').click(function () {/*code for validation*/ if not satisfied then return false; else return true; }
这很正常。如果返回false,则模型提供的默认验证不起作用
即。 @Html.ValidationMessageFor(model => model.Title)
此代码无效[错误消息未显示]。如何在单击按钮时验证默认验证?
答案 0 :(得分:1)
尝试在视图中添加以下行。 Html.EnableClientValidation();
检查是否在web.config中启用了客户端验证:
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
您需要参考以下脚本:
<script src="@Url.Content("~/Scripts/jquery-1.4.4.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/>
此链接将为您提供有关其工作原理的一些背景信息。 http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-validation.html
答案 1 :(得分:0)
由于mvc中不显眼的验证是在此脚本内部处理的,因此无效: jquery.validate.unobtrusive.js 。我认为您的选择是要么一起构建自己的验证,而忽略使用注释进行验证,或者查看是否可以在前面提到的脚本中添加验证规则。您可以查看我发布的问题,处理类似的问题,但不是很安静,但也许它可以让您了解您需要做什么。希望这有帮助,这是帖子:
Integrating qTip with MVC3 and jQuery Validation (errorPlacement)
编辑:它无法正常工作的原因上面提到的脚本验证了表单,当它失败时,添加错误消息。因此,只有在脚本规则中发现错误时才会显示错误消息,而不会在您提到的外部验证中显示错误消息。