这是一个 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();