MVC 3中的jQuery自定义验证问题

时间:2011-06-21 13:07:26

标签: jquery validation asp.net-mvc-3

我正在使用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)此代码无效[错误消息未显示]。如何在单击按钮时验证默认验证?

2 个答案:

答案 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)

编辑:它无法正常工作的原因上面提到的脚本验证了表单,当它失败时,添加错误消息。因此,只有在脚本规则中发现错误时才会显示错误消息,而不会在您提到的外部验证中显示错误消息。