1

ネストされたモデルフォームがあり、ユーザーは、タスクの「名前」と「説明」で構成される「タスク」をいくつでも含めることができる「プロジェクト」を作成できます。これらのタスクは、ユーザーがjQueryを使用して動的に追加します。

これらの各タスクのフィールドにクライアント側の検証を提供したいのですが、現在はlivevalidationプラグインを使用しています。

問題は、フォームが送信されたときにRailsが処理を実行するには一意である必要があるため、入力フィールドに現在の時刻に基づいて動的IDが与えられることです。

私の見方では、2つの選択肢があります。

  1. どういうわけか、javascript検証でワイルドカードを受け入れて、タスクが追加されるたびに、変更されないIDの部分に基づいてフィールドに対して検証を設定できるようにします。

  2. タスクの作成と同時に、必要な検証JavaScriptをインラインで作成します。

上記は機能しますか?より良いオプションはありますか?部分的なID一致から選択された要素をバリデーターに取り込むにはどうすればよいですか?

ありがとう

4

1 に答える 1

1

jQuery Validation Pluginの使用をお勧めします。ID ではなく属性名に基づいて検証を作成でき、異なるフォームに同じルール セットを使用できます。

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

明示的な ID を渡したい場合は、関数を使用してルールを生成できます。

関数validation_rules(インデックス){
  戻る {
    ルール: {
      "name["+index+"]": "必須",
      "説明["+インデックス+"]": "必須"
    }
  };
}
于 2011-01-17T18:32:10.287 に答える