Rails:如何在Rails表单中更改“提交”按钮上的文本


109

我已经在我想做的事情下面列出了_form.html.erb文件,就是更改了“提交”按钮上的文本,我知道如何在html中进行操作,但不知道如何在Rails 3中进行操作

%= form_for(@faq) do |f| %>
  <% if @faq.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@faq.errors.count, "error") %> prohibited this faq from being saved:</h2>

      <ul>
      <% @faq.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :question %><br />
    <%= f.text_field :question %>
  </div>
  <div class="field">
    <%= f.label :answer %><br />
    <%= f.text_area :answer %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

Answers:


193

代替

<%= f.submit  %>

<%= f.submit "My Submit Text" %>

天哪,我不敢相信我是如此接近我,我试图像HTML name =“ My Submit Text”一样使用它,谢谢,这使我得到了我想要的东西:)
Rod Nelson

1
我不敢相信这种简单的事情不在该方法的API文档中
Grant Birchmeier 2013年

4
这对我不起作用-我不得不做<%= f.submit :value => "Login" %>。(3.2.11条)
cassi.lup 2013年

2
如果要保留按钮样式,可以执行以下操作:f.button:submit,“我的提交文本”
jonathanrz

值得阅读其他答案,这些答案显示了如何使用文件进行更改,例如 config/locales/en.yml
cwd

63

如果要更改所有创建和更新表单提交标签,则可以轻松进行此更改。config/locales/en.yml像这样修改:

en:
  helpers:
    submit:
      create: "Crear un %{model}"
      update: "Confirmar cambios al %{model} creado"

55
我喜欢您将西班牙语短语放在英语语言环境中的方式!
graywh 2012年

我想编辑此答案,但我希望让人们来这里微笑(直到遇到新的错误)。
阿斯兰·阿里

43

以@daniel的答案为基础,您还可以基于每个模型自定义Submit标签值:

en:
  helpers:
    submit:
      model_name:
        create: "Create"
        update: "Update"

然后以您的形式可以只使用:

<%= f.submit %>

请参阅此处的文档(第二个示例)。


16

您可以使用:

<%= f.submit 'Name of the submit button' %>

对于此类问题,请考虑在以下位置使用可用的文档:

有时候,像下面这样的Google搜索会有所帮助:


3
与在没有示例的情况下尝试阅读文档相比,在这里提问要容易得多!
Rod Nelson

2
在回答特定的“我如何做” xxx问题时,我发现Ruby文档非常令人沮丧。
Grant Birchmeier 2013年

6

erb编写时

<%= f.submit "your text" %>

HAML编写时

= f.button :submit, "your text"

HAML中,提交后应有逗号,否则将引发错误。


2
逗号不一定要在那里,没有它就可以为我工作。
erb 2014年

是的,您必须输入正确的haml逗号。= f.button:提交,“您的文字”
Pulkit Agarwal 2014年

使用逗号会在轨道4(没有haml)上为我抛出一个错误(并且在没有一个的情况下也可以正常工作)。
rainbowsorbet 2015年

@naomisorbet是的,这就是为什么我在2条评论中对其进行了更正。请检查。
Pulkit Agarwal 2015年

1
是。我看了第一个答案,结果却出错了。我只是像您说的那样添加了逗号,它就起作用了。
Sweet_Cherry


2

有时由于使用了文本而不能使用助手,或者您需要另外添加类等,因此可以直接重写value

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

要么:

<%= f.button :submit, class: 'btn btn-primary', value: 'Login' %>

顺便提一下,@ cassi.lup提到了在对已接受答案的评论中。

在Rails 4.2.3上测试。


1

以防万一,我正在尝试这种情况:

f.submit t('conf.begin') class: 'btn btn-outline btn-success'

但这没有用,解决方案是在上课前用逗号(对于我来说一开始并不明显):

f.submit t('conf.begin'), class: 'btn btn-outline btn-success'

干杯



0

简单易用

<%= f.submit 'Desired text on the button' %>
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.