5

我请求一个 ASP.net MVC 视图到一个 live 框中,并且该视图包含已标记有属性的表单字段,这些属性将由 JQuery 的不显眼的验证器插件使用。

然而,客户端脚本不起作用,我的理论是,这是因为验证框架仅在页面加载时触发,而在 MVC 视图加载到 live box 时已经过去很久了。

因此,我如何让验证框架知道它有新的表单字段要修复?

干杯,伊恩。

4

5 回答 5

19
var $form = $("form");

$form.unbind();
$form.data("validator", null);

$.validator.unobtrusive.parse(document);
// Re add validation with changes
$form.validate($form.data("unobtrusiveValidation").options);
于 2013-08-05T17:15:56.953 回答
6

你可以看看下面的博客文章。这是另一个

于 2011-06-07T17:39:00.240 回答
1

另一种选择,相当技巧,对我有用。只需在 ajax 调用返回的部分视图的开头添加以下行

this.ViewContext.FormContext = new FormContext(); 

参考

于 2012-04-13T10:08:11.660 回答
1

出于某种原因,我不得不结合 bjan 和 dfortun 的答案......

所以我把它放在我的观点中:

@{
  this.ViewContext.FormContext = new FormContext();
}

这在 ajax 调用完成后执行:

var form = $("#EnrollmentForm");
form.unbind();
form.data("validator", null);
$.validator.unobtrusive.parse(document);
form.validate(form.data("unobtrusiveValidation").options);
于 2014-02-06T15:38:47.700 回答
0

我有一个类似的问题。我有一个表单,它使用 Ajax 请求重新显示具有不同表单字段的表单的一部分。我使用不显眼的验证在客户端手动进行

@Html.TextBoxFor

对于我的文本框。由于某种原因,在尝试使用无效字段提交时验证有效(即,文本框以红色标出,并且相应的错误消息与我放入的内容一起显示

data_val_required

属性,例如。

但是,在我单击一个发出 Ajax 请求以修改具有不同字段的表单然后再次提交后,仅显示无效字段上的红色轮廓,但没有呈现错误消息。

bjan 的技巧对我有用,但我仍然看不出是什么导致了这个问题。执行客户端验证所需的所有 HTML 都在那里,我只是无法弄清楚为什么错误消息属性值不会显示。

我能想到的只是 jQuery 验证代码在提交后不会再次尝试检查表单字段。

于 2013-02-13T21:06:08.157 回答