我在 MVC3 项目的页面上有一些动态插入的表单字段。通常我们会在服务器端添加 jQuery 验证,但在这种情况下我们不能(UI 中的多个字段生成一个隐藏字段的值 - 这就是提交的内容。我们无法针对隐藏字段进行验证,因此我们必须为用户可以看到的字段添加仅 UI 验证)
将字段动态添加到页面后,我在容器上运行以下代码:
$container.find(".date").rules("add", {
required: true,
messages: {
required: "The date is required"
}
});
但是这不起作用!奇怪的是,禁用上面的代码,创建动态元素,然后在浏览器 JS 控制台中运行代码可以工作,但只显示默认的验证消息。
我迷茫了。有什么想法吗?
我正在使用 jQuery Validation 1.9.0 和 unobtrusive 插件
最佳答案
事实证明,这主要可以在 HTML 中通过向每个表单元素添加一些属性来完成:
name
属性data-val="true"
data-val-required="message"
像这样:
<input type='text' name="date" data-val="true" data-val-required="A date is required." />
然后只需通过JS重新解析表单即可:
//Remove current form validation information
$("form")
.removeData("validator")
.removeData("unobtrusiveValidation");
//Parse the form again
$.validator
.unobtrusive
.parse("form");
关于jquery - 将 jQuery 验证器规则添加到 ASP 中动态创建的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9386971/