9

我已经使用这里描述的方法来本地化我的数据注释消息,基本上它在普通形式的帖子中工作正常。我也可以在客户端看到本地化的验证消息。

但是,当我有一个部分视图具有要验证的输入字段并使用 ajax 调用加载时,就会出现问题。出于某种原因,我得到了默认验证消息(“此字段是必需的”),而不是在元素的 data-val-required 属性中设置的本地化消息。

我已验证以下内容:
1. 我已包含“jquery.validate.min.js”和“jquery.validate.unobtrusive.min.js”。
2. 我检查了 ajax 响应,它确实包含带有本地化消息的 data-val-required 属性。

我已经尝试了以下解决方案:
1. 我尝试将 ajax 响应(不起作用)解析为 $.validator.unobtrusive.parse('form')
2. 解析动态内容以进行验证,如此所述。仍然没有解决办法。

我有一个紧迫的截止日期,这让我很困扰。

4

2 回答 2

3

我想你已经尝试过了:stackoverflow.com/questions/4406291/jquery-validate-unobtrusive-not-working-with-dynamic-injected-elements - Steve Lamb 的回答对我帮助最大。

基本上,每当您更改页面内容时,您都需要重新初始化验证器,因为验证代码会构建一个列表来跟踪它只需要在页面加载时验证一次的控件......

我似乎还必须添加一些额外的代码才能通过并确保输入正确命名。给我一点时间,我会挖掘代码。- 嗯,抱歉,该代码是客户端应用程序的一部分,我无法发布。不太确定它是否会有所作为......

于 2012-06-15T10:05:18.300 回答
0

以防万一有人提出这个问题,如文档所述,您的字段必须具有name属性:

强制:所有需要验证的输入元素都需要一个“名称”属性,如果没有这个,插件将无法工作。'name' 属性对于表单也必须是唯一的,因为这是插件跟踪所有输入元素的方式。但是,每组单选或复选框元素将共享相同的“名称”,因为该分组的值表示单个表单数据。

资源

于 2017-07-11T21:59:18.797 回答