Userモデルのデータを一覧表示させているページにて、それぞれのデータをチェックし、一括処理を行う機能を実装しています。
その上で、送信ボタンのみがDialog内に設置する必要があるですが、Dialogはフォームの外に生成されてしまうため、以下のように値をjQueryで渡す必要があるのではないかと考えています。
1.フォーム(#form)は通常表示
2.#form内の各チェックボックスのvalueは各userのID
3.各userのIDを配列化
4.Dialog内のフォーム(#in_form)を送信すると、各userのIDがparams[:checked_id]として送信される
ここまでの流れを実現したいのですが、どのように記述すればよろしいでしょうか。
3.にて、チェックされたuserのIDをDialogが開くと同時に.mapで配列にしているのですが、それをどのようにしてDialog内のフォームに値として渡せばいいでしょうか?
javascript
1//3.各userのIDを配列化 2var $checked = $('input[name="checked_applicants[]"]:checked'); 3var valList = $checked.map(function(index, el) { return $(this).val(); }); // => ["12","22"]
#in_form内の送信ボタンを押すと、valListの配列が送信されるようにしたいです。
ご教示よろしくお願い致します。
hiddenフィールドを生成して値を送信しようと思い以下のように記述してみました。
javascript
1$("#modal #in_form").append("<input type='hidden' name='checked_id' value='" + valList + "'>")
しかし、このまま#in_formからデータを送信すると、params[:checked_id] => "[object Object]" となってしまいます。
console.log(valList)では、IDが1,2,3のuserをチェックした時には["1", "2", "3", prevObject: jQuery.fn.init[3], context: document]と表示されています。
どのようにすればうまくparams[:checked_id]に["1","2","3"]といった配列を保存できるでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。