【问题标题】:jquery validation on multiple dynamically generated fields (using nested attributes in rails 3.1)对多个动态生成的字段进行 jquery 验证(使用 rails 3.1 中的嵌套属性)
【发布时间】:2011-12-22 21:50:26
【问题描述】:
我正在使用 jquery 验证插件来验证我的 rails 应用程序的表单。
该表单允许用户将项目动态添加到表单的主对象的 has_many 关系中。
我的问题是,如何使用 jQuery 验证插件验证这些项目中的每一个。例如关联对象的描述文本字段。
动态添加的表单中的字段名称如下所示:
项目[tickets_attributes][0][description]
其中project是主要对象,tickets_attributes是与我的has_many关联的属性关联,
0 (or association object id) unique 和 description 是我的 has_many 关联中的属性名称。
【问题讨论】:
标签:
jquery
ruby-on-rails
validation
ruby-on-rails-3.1
nested-attributes
【解决方案1】:
我认为您正在寻找的是.delegate(),这将使您可以将事件处理程序附加到可能动态生成的任何项目。
在下面的示例中,任何具有“动态项目”类的项目
类似的例子
$form.delegate(".dynamic-item", "onChange", validate)
只要您的动态元素之一发生更改,这将触发验证功能,您可以使用它来调用验证器
【解决方案2】:
例如,当您在单击按钮“发送” 上添加事件时,您需要使用.live() 而不是.click() 或.bind()。
.live() 将接受您的所有动态输入。
更新
.live() 现在已在 jQuery 1.7 中弃用,并已在 1.9 中删除。请改用.on()。