submit_tag без кнопки или изображения на рельсах - PullRequest
2 голосов
/ 19 октября 2011

Как создать действие отправки в форме, а не с помощью кнопки (с submit_tag) и не с помощью изображения (image_submit_tag)?

Я хотел бы, чтобы в представлении был текст, реагирующий на нажатия, например ссылка

Спасибо

Ответы [ 2 ]

3 голосов
/ 19 октября 2011

Это необходимо сделать с помощью 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.Если вы используете

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

Тем не менее, вы можете передать опцию метода в вызов метода link_to, чтобы использовать POST.Однако простое выполнение без javascript не приведет к отправке данных формы.Поэтому вам придется либо выполнить вышеизложенное, либо использовать javascript для добавления данных в URL-адрес, как если бы вы были в строке запроса.

0 голосов
/ 27 февраля 2016

Вот один из способов, которым я это сделал:

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

Затем измените стиль:

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

Так что это технически кнопка, но она очень похожа на ссылку.Это немного глупо, хотя:)

...