Как создать действие отправки в форме не по кнопке (с submit_tag) и не по изображению (image_submit_tag)?
Я хотел бы, чтобы отправка была кликабельным текстом, например ссылкой
Спасибо
Как создать действие отправки в форме не по кнопке (с submit_tag) и не по изображению (image_submit_tag)?
Я хотел бы, чтобы отправка была кликабельным текстом, например ссылкой
Спасибо
Вам нужно будет сделать это с помощью 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. Если вы используете ‹ Rails 3.1, просто добавьте это в свой application.js. Если вы используете Rails 3.1, добавьте его в один из js-файлов в каталоге assets/javascripts.
$(function() {
$('#submit').click(function() {
$('#form').submit();
});
});
Тем не менее, вы можете передать параметр метода в вызов метода link_to, чтобы использовать POST. Однако простое выполнение этого без javascript не приведет к отправке каких-либо данных формы. Таким образом, вам нужно либо сделать то же самое, либо использовать javascript для добавления данных в URL-адрес, как в строке запроса.
<%= javascript_include_tag :defaults %>
или что-то в этом роде. Символ по умолчанию включает в себя различные библиотеки js, а также application.js. Если вы не используете Rails 3.1, вам может потребоваться добавить jQuery в ваше приложение, чтобы приведенный выше код работал.
- person agmcleod; 19.10.2011
Вот один из способов, которым я это сделал:
<a><%= submit_tag "Submit", class: "fake-button" %></a>
Затем измените стиль:
.fake-button {
padding: 0;
border: none;
display: inline;
}
Так что технически это все еще кнопка, но очень похожая на ссылку. Это немного взломано, хотя :)