修改 <%= f.submit %> 的默认 CSS 输入类

Posted

技术标签:

【中文标题】修改 <%= f.submit %> 的默认 CSS 输入类【英文标题】:Modifying <%= f.submit %>'s default CSS input class 【发布时间】:2013-02-27 03:01:29 【问题描述】:

我一直在尝试让&lt;%= f.submit %&gt; 与我的其他“按钮”一样出现,并且全部连续显示,但运气不佳。我在修改f.submit 的类时发现了this helpful post,但在浏览器中检查它的元素时意识到它采用了input 的类,无论我添加了哪些附加类作为选项参数,从而限制了它的外观。

基本上,我的其他每个按钮都具有以下形式:

<div class="sort-nav">
  <ul>
    <li><h4><%= link_to "Some stuff", some_link_path %></h4></li>
  </ul>
</div>

我想知道是否有一种方法可以将所有这些样式压缩到一个类中,并覆盖 f.submit 中包含的 input 类。谢谢。


为了启迪,这个按钮将成为我的“关注”/取消关注按钮,用于创建或销毁关系,我首先打算使用以下代码呈现 _follow_form 部分:

  <% if current_user.following?(@course) %>
    <%= render 'unfollow' %>
  <% else %>
    <%= render 'follow' %>
  <% end %>

每个 _followpartial 看起来如下所示:

<%= form_for(current_user.relationships.build(followed_id: @course.id)) do |f| %>
  <%= f.hidden_field :followed_id %>
  <%= f.submit "Follow course" %>
<% end %>

【问题讨论】:

【参考方案1】:

有点骇人听闻,但您始终可以使用 js 提交表单,因此不要使用f.submit,而是将其更改为

<div class="sort-nav">
  <ul>
    <li>
      <h4><%= link_to_function "Some stuff", '$(this).closest("form").submit()' %></h4
    </li>
  </ul>
</div>

【讨论】:

谢谢!这实际上看起来像是最佳解决方案,因为它适合我制作的其余按钮。唯一的问题是我实际上打算渲染一系列部分,这个按钮将作用于createdestroy 关系(我在上面的问题中发布了更多代码).. 我不确定我怎么能在这里使用 js.. 再次感谢。 html 更改这个 有什么问题? 你能再试一次吗?错误是由于js上的引号引起的。请尝试更新的答案 我实际上注意到了一个问题:虽然新的关注/取消关注按钮的顶部与其他按钮对齐,但底部总是比其他部分延伸一点。即使做类似padding-bottom: -10px 的事情也不起作用。我不确定是否添加了额外的行,尽管使用 CSS 尝试了几个选项,但按钮仍然比其他按钮延伸得更长。 谢谢!我的 css-fu 很弱.. 这很有帮助。

以上是关于修改 <%= f.submit %> 的默认 CSS 输入类的主要内容,如果未能解决你的问题,请参考以下文章

如何在rails4中的f.submit中给出图标类

没有路线匹配[POST]“/ jobs”

Rails隐藏字段未定义方法“合并”错误

如何在rails提交按钮中放置图标

Rails:一个表单中的多个提交按钮

修改样式