submit_tag没有按钮或图像在轨道上

时间:2011-10-19 15:05:22

标签: ruby-on-rails-3 form-submit

如何在表单中创建提交操作而不是按钮(使用submit_tag)而不是图像(image_submit_tag)?

我希望提交为可点击的文字,如链接

由于

2 个答案:

答案 0 :(得分:3)

您需要使用javascript,因为链接是GET请求,而不是发布请求。所以假设你有以下代码:

<%= form_for @post, :html => { :id => 'form' } do |f| %>
  <div class="field">
    <%= f.label :title %>
    <%= f.text_field :title %>
  </div>
  <div class="field">
    <%= f.label :body %>
    <%= f.text_area :body %>
  </div>
  <div class="actions">
    <a id="submit">Submit</a>
  </div>
<% end %>

然后,您需要将以下内容添加到其中一个javascript文件中。如果你正在使用&lt; Rails 3.1,只需将其添加到您的application.js即可。如果您使用的是Rails 3.1,请将其添加到assets / javascripts目录中的一个js文件中。

$(function() {
  $('#submit').click(function() {
    $('#form').submit();
  });
});

也就是说,您可以将方法选项传递给link_to方法调用,以使用POST。但是,只是在没有javascript的情况下这样做不会提交任何表单数据。因此,您要么必须执行上述操作,要么使用javascript将数据添加到URL中,就像在查询字符串中一样。

答案 1 :(得分:0)

这是我做到的一种方式:

<a><%= submit_tag "Submit", class: "fake-button" %></a>

然后,更改样式:

.fake-button {
  padding: 0;
  border: none;
  display: inline;
}

所以它在技术上仍然是一个按钮,但看起来非常像一个链接。虽然有点hacky:)