Rails对动态嵌套模型字段的JavaScript验证

时间:2011-01-17 11:39:22

标签: javascript jquery ruby-on-rails validation nested-attributes

我有一个嵌套的模型表单,用户可以在其中创建一个“项目”,其中可以包含任意数量的“任务”,其中包含“名称”和“描述”。这些任务由用户使用jQuery动态添加。

我想为每个任务中的字段提供客户端验证,目前我正在使用livevalidation插件。

问题是输入字段是根据当前时间给出的动态ID,因为在提交表单时,Rails必须是唯一的,才能完成它的工作。

我看到它的方式,我有两个选择:

  1. 以某种方式获取javascript验证以接受通配符,以便每次添加任务时,可以根据其不会更改的id部分对其字段设置验证。

  2. 在创建任务的同时创建必要的内联验证javascript。

  3. 上述工作会不会?还有更好的选择吗?如何从部分id匹配中选择一个元素进入验证器?

    由于

1 个答案:

答案 0 :(得分:1)

我建议使用jQuery Validation Plugin。它允许您根据属性名称而不是ID来创建验证,并且您可以对不同的表单使用相同的规则集:

validation = { rules: { "name": "required", "description": "required" } }
jQuery("#form-1").validate(validation);
jQuery("#form-2").validate(validation);

如果要传递显式ID,可以使用函数生成规则:

function validation_rules(index){
  return {
    rules: {
      "name["+index+"]": "required",
      "description["+index+"]": "required"
    }
  };
}