質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1776閲覧

submitボタン押下時に別タブでページを開いた場合にsubmitボタンがへこんだまま戻らない

lyzmfeqpxs54

総合スコア237

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2018/02/28 01:45

編集2018/03/08 01:38

いつもお世話になっております。

Railsでsubmitボタンが押されたときに、もともとそのページをredirect_toで飛ばしていたのですが、別タブでそのページを開くようにしたいと思い、formtarget: "_blank"を用いて以下のようにコーディングをしました。

別ページは開くのですが、元のページのsubmitボタンがへこんだまま戻らない状態となってしまいます。
どのような方法で回避するのが一般的でしょうか。
方法をご教示いただけますと幸いです。
よろしくお願いいたします。

Ruby

1@lists"xxx,yyy,zzz"のような形でセレクトタグの表示するようのリストが文字列で入っており、strAryにカンマ区切りで格納しております。 2show.html.erb 3<%= form_with(model: @userinfo, local: true, html: {id: 'inform_save', class: 'form', method: "post", autocomplete: 'off'}) do |f| %> 4 <% strAry = @lists.split(",") %> 5 <%= select_tag 'move[point]', options_for_select(strAry) %> 6 <%= f.submit 'ホーム画面を見る', formtarget: "_blank" %> 7<% end %> 8 9xxx_controller.rb 10def move 11 redirect_to "/home/#{params[:yyyy]}" 12end 13

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bassbone

2018/03/05 12:34

show.html.erbを可能な範囲で出してもらえますでしょうか?(さすがに質問に記載の1行だけとは思えませんので)
lyzmfeqpxs54

2018/03/08 01:38

ご回答ありがとうございます。コードの追記を行いました。
lyzmfeqpxs54

2018/03/08 01:39

まず、このようにセレクトタグの内容をPOSTしてページを移動するという行動自体に問題がありそうでしょうか。
guest

回答1

0

ベストアンサー

これは、 Rails が 気の利いたことに 自動で submit ボタンを無効化する処理をしてくれてしまっているからかと思います。

一般的に、フォームの読み込みが重たい等の理由で、なかなか遷移しないからとユーザが 何度も送信ボタンをクリックするのを防ぐ 目的で、一度クリックされた submit ボタンは JavaScript で無効化してしまうという処理を実装することがあります。
現行の Rails の場合、この処理が最初から組み込まれていて、かつデフォルトで有効となっているため、そのせいで困って居られる状況だと思われます。フォームを表示しているページ自体が遷移してしまえば、これで問題ないのですが、フォームの送信結果が別タブで表示される場合、フォームは元のタブで残り続けるため、無効化されては困るという塩梅です。

さて、具体的な対処法ですが、一つは抑々この有難い自動処理をデフォルトで無効化するため、 Action View の設定 にある automatically_disable_submit_tagfalse を設定するという方法が御座います。

あるいは、デフォルトでは有効にしておきたいが、当該 submit ボタンでだけ無効にしたい場合は、 こちらのドキュメントにある 通り、 FormBuilder.submit の第二引数で :data => { disable_with: false } を明示的に渡すことで無効化できるのではないでしょうか。どちらが良いかは、お好みで御選び下さい。

投稿2018/03/09 06:18

argparse

総合スコア1017

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lyzmfeqpxs54

2018/03/09 08:05

ご回答ありがとうございます。 このボタンのみに適用したいため「data => { disable_with: false }」で解決いたしました。 本当にありがとうございます。 また、何かありました際にご教示いただけますと幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問