将CSS类添加到<%= f.submit%>


Answers:


352
<%= f.submit 'name of button here', :class => 'submit_class_name_here' %>

这应该做。如果遇到错误,则很可能是您没有提供名称。

另外,您可以在不使用类的情况下为按钮设置样式:

form#form_id_here input[type=submit]

也尝试一下。


优秀的!谢谢Srdjan。有点好奇-我尝试过使用disable_with这些提交按钮,但它们似乎从未起作用。您知道为什么吗?+1
sscirrus'3

3
尝试使用哈希值作为选项:{:class =>'class_name',:disable_with =>'Editing ...'}。这将放在按钮名称之后。它应该可以工作,或者至少已记录在案。
Srdjan Pejic

3
请注意,您需要显式传递一个字符串(“此处的按钮名称”)作为第一个参数,submit以使用:class哈希,如上面的答案所示。如果没有该字符串,则会收到错误消息。
thewillcole 2012年

7
在不删除默认值的情况下添加类,请在这里回答stackoverflow.com/questions/8811254/…–
Naoise Golden

<%= form.submit :class => 'class_name' %>如果您不想使用名称,则可以使用。

141

您可以通过执行以下操作将类声明添加到表单的提交按钮:

<%= f.submit class: 'btn btn-default' %> <-注意:没有逗号!

如果要更改支架的_ form.html.erb部分,并且希望在控制器操作之间保持按钮名称的动态变化,请不要指定name 'name'

在不指定名称的情况下,并且根据操作的不同,呈现表单的按钮将获得具有以下名称的.class = "btn btn-default"(Bootstrap类)(或.class您指定的任何名称):

  • 更新模型名称

  • 创建model_name
    (其中model_name是支架模型的名称)


13
尽管投票数少于所选答案,但这是大多数人想要使用的解决方案。
IAmNaN 2013年

3
这就是我要寻找的东西
Sandeep Garg,2014年

1
有用,并允许添加HTML属性(如示例中的“ id”或“ class”),而无需更改Rails生成的默认按钮文本。
TK-421 2014年

1
IMO这是最好的答案,因为它保留了根据控制器操作将文本动态分配给按钮的行为(“创建”或“更新”)
sixty4bit 2015年

绝对如@ sixty4bit所说。应该在翻译文件中设置按钮文本,以便可以在不同的控制器操作(即“创建注释”与“更新注释”)之间重用该表单。看到这个答案-stackoverflow.com/a/18255633/5355691
Jarvis Johnson,

26

Rails 4和Bootstrap 3“主要”按钮

<%= f.submit nil, :class => 'btn btn-primary' %>

产生如下内容:

screen-2014-01-22_02.24.26.png


2
这实际上是最好的,因为指定nil名称会保留帮助程序的默认行为,如果该名称找到要创建/显示的对象的实例变量,例如@person,它将相应地命名按钮(Update Foo或Create Foo)以及form_forFormBuilder选择正确的动作。因此,您可以通过这种方式将表单代码提取为部分代码,并使用它来显示模型对象(如果您希望使用表单来显示它),更新它并创建一个新实例。
Paul-Sebastian Manole'Mar

13

正如Srdjan Pejic所说,您可以使用

<%= f.submit 'name', :class => 'button' %>

或新语法为:

<%= f.submit 'name', class: 'button' %>

9

使用form_with helper时的解决方案

对于使用Rails 5.2的用户,with with form_withhelper:不要添加逗号

<%= f.submit class: 'btn btn-primary' %>

屏幕截图没有逗号

HTH!


2

默认情况下,Rails 4使用'value'属性控制可见的按钮文本,因此为了保持标记的整洁,我将使用

<%= f.submit :value => "Visible Button Text", :class => 'class_name' %>

0

他们俩都工作 <%= f.submit class: "btn btn-primary" %><%= f.submit "Name of Button", class: "btn btn-primary "%>

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.