我看到一些類似的問題,但它們看起來很有意思,主要針對以前版本的Rails。提交Rails 4表單鏈接而不是按鈕
什麼是提交與錨標記(鏈接)的一種形式,而不是正常的按鈕
<%= f.submit 'Search', :class => "button expand"%>
什麼是最簡潔的方式(最佳實踐)的方式改變一個鏈接的最簡單方式提交?
我看到一些類似的問題,但它們看起來很有意思,主要針對以前版本的Rails。提交Rails 4表單鏈接而不是按鈕
什麼是提交與錨標記(鏈接)的一種形式,而不是正常的按鈕
<%= f.submit 'Search', :class => "button expand"%>
什麼是最簡潔的方式(最佳實踐)的方式改變一個鏈接的最簡單方式提交?
我經常使用js/jquery提交表單。如果提交按鈕不在表單之外,或者有多個按鈕提交相同的表單,這非常有用。
$(".submit-btn").click(function(event) {
event.preventDefault();
$("#form-id").submit();
});
event.preventDefault();
可以防止默認按鈕/提交行爲。
這是我在一個軌道4項目使用CoffeeScript的例子:
ready = ->
if $("#form-id").length > 0
$(".submit-btn").click (event) ->
event.preventDefault()
$("#form-id").submit()
$(document).ready ready
$(document).on "page:load", ready
另外請注意,這樣的鏈接可以是任何類型的元素 - 不一定是一個提交按鈕。您不必在表單中放置提交按鈕,但如果您這樣做,則會阻止默認表單提交行爲。
這似乎不適用於Rails 5,可能是由於表單真實性令牌的問題。 – jpwynn
這是如此簡單:
然後:
<%= f.submit '', :class => "hidden", :id => 'form_submit_button' %>
content_tag(:a, 'Submit', :name => 'submit', :id => 'submit_link')
和JS:
$(document).ready(function() {
$(document).on("click","#submit_link",function() {
$('#form_submit_button').click();
});
});
我不知道確切的左右這樣的語法時纔可能有一些語法錯誤。請隨時索取更多幫助。
您不需要添加提交按鈕並隱藏它。根本不包括它。 –
但我認爲jQuery已棄用form.submit()行動。否則最好不要包含隱藏的按鈕 –
已過時?你從哪裏得到這些信息? –
提交
爲了擴大已經提供的答案,HTML表單必須有submit
按鈕提交。
我不知道到底是什麼特色的submit
按鈕在鏈接上 - 它本質上調用submit
行動,其中一個環節都不能(info):
-
鏈接
這意味着如果你想用一個替換提交按鈕鏈接,你基本上必須在應用程序中模仿submit
方法。這可以用JS(JQuery)完成:
#app/assets/javascripts/application.js
$(document).on("click", "#your_link", function(){
$("#form").submit();
});
#app/views/controller/your_view.html.erb
<%= form_tag your_path, id: "form" do %>
<%= link_to "Submit", your_path, id: "your_link" %>
<% end %>
只是好奇,爲什麼你想這樣做?無論如何,只需在提交表單的鏈接的點擊事件中添加一個處理程序即可。 –
只需將您的按鈕設計得像鏈接或使用一些Javascript來提交表單即可。這不是Rails特有的。 – tirdadc
我已經在幾個地方看到它作爲一個問題引用,所以我只是好奇,如果有一個Rails方式或助手,使它更容易做,但基於答案它只是JavaScript,使預期的結果。 –