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

ssc*_*rus 214 css ruby-on-rails ruby-on-rails-3

我的问题很简单:

<%= f.submit %>
Run Code Online (Sandbox Code Playgroud)

课堂宣言在哪里?我在多次尝试时遇到错误.

Srd*_*jic 349

<%= f.submit 'name of button here', :class => 'submit_class_name_here' %>
Run Code Online (Sandbox Code Playgroud)

这应该做.如果您收到错误,可能是您没有提供该名称.

或者,您可以在没有类的情况下设置按钮的样式:

form#form_id_here input[type=submit]
Run Code Online (Sandbox Code Playgroud)

试试吧.

  • 添加类而不删除默认值在这里http://stackoverflow.com/questions/8811254/add-a-class-to-f-submit-but-keep-default-functionality (7认同)
  • 尝试使用哈希选项:{:class =>'class_name',: disable_with =>'Editing ...'}.这将按下按钮名称.它应该工作,或至少它被记录为. (3认同)
  • 请注意,您需要显式传递一个字符串('此处的按钮名称')作为`submit`的第一个参数,以便在上面的答案中使用:class hash.如果您没有该字符串,则会收到错误消息. (3认同)
  • `&lt;%= form.submit :class =&gt; 'class_name' %&gt;` 工作,如果你不想使用名称。 (2认同)

alo*_*cas 133

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

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

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

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

  • 更新model_name

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

  • 尽管投票数少于所选答案,但这是大多数人想要使用的解决方案. (13认同)
  • 这就是我想要找到的 (3认同)
  • 很有用,并且允许添加 HTML 属性(“id”或“class”,如示例中所示),而不更改默认的 Rails 生成的按钮文本。 (2认同)

cwd*_*cwd 26

Rails 4和Bootstrap 3"主要"按钮

<%= f.submit nil, :class => 'btn btn-primary' %>
Run Code Online (Sandbox Code Playgroud)

产量如下:

screen-2014-01-22_02.24.26.png http://img854.imageshack.us/img854/9148/2wlx.png

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

小智 12

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

<%= f.submit 'name', :class => 'button' %>
Run Code Online (Sandbox Code Playgroud)

或者新的语法:

<%= f.submit 'name', class: 'button' %>
Run Code Online (Sandbox Code Playgroud)


BKS*_*eon 8

Rails 5.2解决方案:

对于那些使用Rails 5.2form_with帮助者的人:不要添加逗号!

<%= f.submit class: 'btn btn-primary' %>
Run Code Online (Sandbox Code Playgroud)

屏幕截图没有逗号

HTH!