Ruby on rails 关注rails flash消息

Ruby on rails 关注rails flash消息,ruby-on-rails,rails-flash,Ruby On Rails,Rails Flash,下面是rails控制器重定向语句 redirect_to "controller_action_path", error: err.to_s 该语句在浏览器的页面源中生成以下HTML <div class="alert alert-danger alert-error" role="alert">"Your alert here"</div> “您的警报在此” 问题:如何围绕页面顶部显示的flash响应消息创建焦点。 尝试的解决方案: $('.alert dan

下面是rails控制器重定向语句

redirect_to "controller_action_path", error: err.to_s 
该语句在浏览器的页面源中生成以下HTML

<div class="alert alert-danger alert-error" role="alert">"Your alert here"</div>
“您的警报在此”
问题:如何围绕页面顶部显示的flash响应消息创建焦点。 尝试的解决方案:


$('.alert danger').focus();

如果HTML元素有一个id标记,则此操作有效。也许如果HTML元素也有一个类。似乎静态元素可以接收焦点,但是,由于flash错误消息是由rails框架生成的,并且是动态生成的元素,因此在尝试应用焦点时,它没有呈现在表单上,或者在页面的HTML中找不到该元素。后者似乎不是这种情况,因为调试器返回
$('.alert danger').focus()的HTML

Rails生成静态html并将其发送到客户端,因此Rails生成的任何内容都将与所有其他html同时呈现

尝试将控制器代码更改为
重定向到“控制器操作路径”,警告:err.to\s
,并将jQuery函数的条件更改为
<代码>:错误
对于
重定向到

我也不认为jQuery上的条件是必要的。如果没有错误,那么无论如何,该错误类应该没有可见的标记


另外,默认情况下,
$.focus()
不适用于每个元素

什么是
。警告危险
,您想将焦点放在哪里?
<% if flash[:error] %>
  <%= javascript_tag do %>
    $('.alert-danger').focus();
  <% end %>
<% end %>