前提・実現したいこと
railsを用いて、複数のformを一つのsubmitで同時に送信したい。
追加:
複数人の評価を別々に保存したいからです。
例えばAさんが、Bさん、Cさん、Dさんの評価をすることもあるし、
Bさんだけを評価することがあることを実現したいです。
発生している問題・エラーメッセージ
”送信する”を押すと、iPhoneのみで以下のようなページに遷移してしまう。
なおiphone以外では正常に動作します。
エラーメッセージ
該当のソースコード
rails
1<% n=1 %> 2 <% @evaluated.each do |member|%> 3 <%= form_for @evaluation , html: {id: "form#{n}"} do |f| %> 4 <%= f.hidden_field :game_id, value: @game.id %> 5 <%= f.hidden_field :evaluator_id, value: current_member.id %> 6 <%= f.hidden_field :evaluated_id, value: member.id %> 7 <div class="card my-2"> 8 <div class="m-3"> 9 <h3><%= member.name %>さんへの評価</h3> 10 <div class="star mt-2 mb-2"></div> 11 <div class='form-team'> 12 <%= f.text_field :comment, class:'contact-form text-white', placeholder: "コメント" %> 13 </div> 14 </div> 15 </div> 16 <% end %> 17 <% n+=1 %> 18 <% end %> 19 20 <span id="count" style="display:none;"><%= @evaluated.count%></span> 21 <div class="actions text-center mt-5"> 22 <input value="送信する" type="submit" id="send_evaluation" class="btn btn-lightblue"> 23 <input value="戻る" type="button" style="display:none;" id="back-button" class="btn btn-lightblue mb-3"> 24 </div>
jquery
1 2var button = document.getElementById('send_evaluation'); 3var button2 = document.getElementById('back-button'); 4var n = document.getElementById('count').textContent; 5 6button.onclick = function(){ 7 if(confirm("評価、コメントに間違いはありませんか?")){ 8 this.style.display = "none"; 9 button2.style.display ="inline"; 10 for(var i=1; i<=n; i++){ 11 (function(param) { 12 setTimeout(function(){ 13 var form = document.getElementById("form"+ param); 14 form.submit();}, 300*param); 15 }); 16 }; 17 } 18};
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
この画面遷移の問題の解決法または、
form複数個を同時に送信する方法をご教授いただければと思います。
どうぞよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー