jquery - 将 jQuery 验证器规则添加到 ASP 中动态创建的元素

标签 jquery asp.net jquery-validate unobtrusive-validation

我在 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/

相关文章:

javascript - 无法使用 jsColor 获取 jQuery 中按钮的颜色

C# - MVC 应用程序如何更新和删除数据库中的记录

c# - ASPX 身份验证 cookie 过期时间始终为 30 分钟

jquery-mobile - jQuery Mobile中的AJAX表单提交

jquery - setInterval 参数之间的区别

javascript - 如何在当前列旁边添加表格列

asp.net - 如何获取位于表单 View 的 insertitemtemplate 内的下拉列表用户控件的选定值?

jquery - 在多选元素上使用 jquery 验证远程

javascript - 动态克隆表单的 jQuery 图像验证

javascript - 通过AJAX将PHP变量传递给另一个DIV中的PHP变量