2016-05-11 17 views
0

チュートリアルhereに基づいて複数ステップのフォームを作成しました。 Jquery Validationをプロセスに組み込んで、データがサーバーにヒットする前にクリーンであることを確認します。バリデーションと複数ステップフォームはすべて目的どおりに動作しますが、Jquery検証はidの代わりにnameタグをターゲットにしているため、検証を機能させるために手動で変更する必要がありました。ターゲットHTML 'name'属性Jqueryを使用したレールフォームビルダ

rules: { 
         registrant_first_name: { 
         required: true, 
         minlength: 2, 
        }, 

        ... 
     }, 

とフォームヘルパーで:

<%= f.text_field :first_name, name: 'registrant_first_name', class: 'form-control' %> 

しかし、これは動作しますが、これは登録者のコントローラのうち、私のparamsを送信し、私は新しいのparamsを受け入れるように再構成モデ​​ルに必要があると思います。フォームは、データを拒否し、私はパラメータを受け入れるために、単純に再構成する登録者モデルによってこの問題を解決することができますかなり確信している間のフィールドが

registrant_first_name: John 
registrant_last_name: Doe 
registrant_email: [email protected] 

(彼らは技術的である)空白になっていると言って応答し、私はフォームヘルパーによって生成された名前属性をターゲットにJquery検証ルールを設定する方法があるのだろうか?

rules: { 
         registrant[first_name]: { 
         required: true, 
         minlength: 2, 
        }, 

        ... 
     }, 

(現在はエラーがスローされます)とされていない場合、もはやregistrantsハッシュに所属していないだろう、これらのパラメータを許可するようにモデルを構成する際に害はありますか?

答えて

2

フォームヘルパーによって生成された名前属性を対象にするためにJquery検証ルールを設定する方法がありますか? (現時点ではエラーが発生しています)

はい。名前を引用符で囲みます。

rules: { 
    'registrant[first_name]': { 
     required: true, 
     minlength: 2, 
     .... 

Documentation: Fields with complex names (brackets, dots)

"フォームは法的JavaScriptの識別子ではない名前を使用してフィールドで構成されている場合、あなたはrulesオプションを使用する場合、これらの名前を引用しなければならない"

+0

ありがとうございます。完璧に働いた – Jarrel09

関連する問題