【问题标题】:jQuery custom validation problem in MVC 3MVC 3 中的 jQuery 自定义验证问题
【发布时间】:2011-06-21 13:07:26
【问题描述】:

我正在使用 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 ,模型提供的默认验证不起作用 IE。 @Html.ValidationMessageFor(model =&gt; model.Title)此代码不起作用[错误消息未显示]。单击按钮时如何验证默认验证?

【问题讨论】:

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


    【解决方案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

    【讨论】:

      【解决方案2】:

      它不会起作用,因为 mvc 中的非侵入式验证是在这个脚本内部处理的:jquery.validate.unobtrusive.js。我认为您的选择是要么一起构建自己的验证,而忽略使用注释的内置验证,要么查看是否可以在前面提到的脚本中添加验证规则。您可以查看我发布的一个问题,该问题涉及类似的问题,并不安静,但也许它可以让您了解您需要做什么。希望这有帮助,这是帖子:

      Integrating qTip with MVC3 and jQuery Validation (errorPlacement)

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-04
        相关资源
        最近更新 更多