【发布时间】:2012-06-14 16:26:03
【问题描述】:
我已经使用here 描述的方法来本地化我的数据注释消息,基本上它在普通形式的帖子中工作正常。我也可以在客户端看到本地化的验证消息。
但是,当我的部分视图包含要验证的输入字段并使用 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. 解析动态内容以进行验证,如here 所述。还是没有解决办法。
我有一个紧迫的截止日期,这让我很困扰。
【问题讨论】:
-
您是在添加部分内容后立即尝试验证,还是动态内容与表单的其余部分一起正常提交?
-
动态内容与表单的其余部分正常提交。
-
终于有了突破。我的页面中有两种形式,一种在索引页面中,一种在部分页面中。单击表单提交的按钮位于索引页面上。我移动了部分页面中的按钮,使其位于部分页面的表单元素内,瞧!它工作得很好。虽然问题解决了,但不知道是什么原因造成的,移动最里面的按钮是如何解决的?我的问题已解决,但如果有人可以帮助我了解原因,我可以将其标记为答案并关闭此问题。
-
生成的标记(来自加载局部视图)是否在表单中创建表单?如果是这样,那就是问题所在。一个表单中不能有另一个表单。
-
是的,标记包含表单中的表单。具有验证属性的元素在内部形式中,而按钮在外部形式中。我假设它正在提交外部表单。为什么内部形式会产生问题?
标签: jquery asp.net-mvc-3 data-annotations unobtrusive-validation