jQuery 验证 - asp.net MVC4 客户端验证不起作用



我在配置中启用了客户端验证,我还包括了适当的jquery文件进行验证,但每次提交时,页面都会发布到服务器,而无需首先进行客户端验证。我已经粘贴了在下面的源代码中生成的标记。它似乎正在生成数据验证消息。只是不知何故没有触发验证。

我正在使用Nuget上提供的BeginCollection库来构建我的动态表单。这可能是我的客户端验证不起作用的原因吗?

    <input class="text-box single-line valid" data-val="true" 
data-val-number="The field DaysAbsent must be a number." 
data-val-required="The DaysAbsent field is required." 
id="students_471abdc8-b190-42da-9f72-ed30a1e33b10__DaysAbsent" 
name="students[471abdc8-b190-42da-9f72-ed30a1e33b10].DaysAbsent" 
type="text" value="0">

我的web.config:

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

_Layout.cshtml:

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/jqueryui")
    @Scripts.Render("~/bundles/jqueryval")
    @RenderSection("scripts", required: false)

BundleConfig.cs:

            bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                    "~/Scripts/jquery.unobtrusive*",
                    "~/Scripts/jquery.validate*"));

您提到了动态表单,所以如果您正在动态加载输入,jquery.validate并不知道它们在那里。您必须"刷新"表单验证以验证新输入。

添加新输入后,使用此代码"刷新"表单的验证:

$('form').removeData('validator');
$('form').removeData('unobtrusiveValidation');
$.validator.unobtrusive.parse($('form'));

相关内容

  • 没有找到相关文章

最新更新