これは、Rails コントローラーのリダイレクト ステートメントです。
redirect_to "controller_action_path", error: err.to_s
このステートメントは、ブラウザのページ ソースに次の HTML を生成します。
<div class="alert alert-danger alert-error" role="alert">"Your alert here"</div>
問題: ページの上部に表示されるフラッシュ応答メッセージの周りにフォーカスを作成するにはどうすればよいですか。試行された解決策:
<% if flash[:error] %>
<%= javascript_tag do %>
$('.alert-danger').focus();
<% end %>
<% end %>
これは、HTML 要素に id タグがある場合に機能します。おそらく、HTML 要素にもクラスがある場合。静的要素はフォーカスを受け取ることができるように見えますが、flash エラー メッセージは Rails フレームワークによって生成され、動的に生成された要素であるため、フォーカスを適用しようとしたときにフォームにレンダリングされていないか、またはページの HTML で要素を見つけることができません。デバッガーが HTML を返すため、後者は状況ではないようです。$('.alert-danger').focus();