使用Rails生成一个按钮元素而不是输入元素形成帮助器

时间:2017-10-31 03:57:48

标签: html ruby-on-rails form-helpers

我在我的Rails应用程序中使用了一个前端模板,它通过从标签中选择按钮来为CSS设置样式。

问题在于Rails Form Helpers通过使用标签而不是标签生成HTML代码来呈现按钮。因此在执行以下html.erb代码时:

<%= simple_form_for @waiter do |f| %>
    <%= f.input_field :email %>
    <%= f.button :submit, "My button" %>
<% end %>

它将按钮呈现为:

<input type="submit" name="commit" value="My button" class="btn btn-default" data-disable-with="My button">   

我想为按钮生成一个HTML代码,类似于:

<button relevant_attributes="relevant values">My button</button>  

到目前为止,我已经尝试过没有成功:

  1. 将CSS ID添加到输入标记并修改模板样式表以重现按钮样式(我已经意识到这不是一个有效的选项,因为这里很难解释)。
  2. 使用vanilla Rails表单助手而不是simple_form表示助手(也提供输入标签元素)。
  3. 到目前为止,唯一的解决方案是直接创建HTML按钮元素(如下所示)并将其绑定到onClick JS事件,该事件触发通过JS提交表单的Ajax请求:

    <%= simple_form_for @waiter do |f| %>
        <%= f.input_field :email %>
        <button id="my-button">My button</button>
    <% end %>
    

    目前的解决方案似乎并不优雅。有人可以建议更好的解决方案吗?是否可以通过Rails助手生成按钮元素?

1 个答案:

答案 0 :(得分:1)

您可以使用button_tag

默认情况下提交表单应为type="submit"