我看到一些类似的问题,但它们似乎是人为制造的,并且主要针对Rails的旧版本。
如何以锚标签(链接)而不是普通按钮提交表单的最简单方法是什么?
<%= f.submit 'Search', :class => "button expand"%>
如何以最简洁的方式(最佳实践)将其更改为提交链接?
我看到一些类似的问题,但它们似乎是人为制造的,并且主要针对Rails的旧版本。
如何以锚标签(链接)而不是普通按钮提交表单的最简单方法是什么?
<%= f.submit 'Search', :class => "button expand"%>
如何以最简洁的方式(最佳实践)将其更改为提交链接?
我经常使用js/jquery来提交表单。如果提交按钮在表单外部或者有多个按钮可以提交同一个表单,这非常有用。
$(".submit-btn").click(function(event) {
event.preventDefault();
$("#form-id").submit();
});
event.preventDefault();
可以防止默认的按钮/提交行为。ready = ->
if $("#form-id").length > 0
$(".submit-btn").click (event) ->
event.preventDefault()
$("#form-id").submit()
$(document).ready ready
$(document).on "page:load", ready
请注意,这种方式可以将链接作为任何类型的元素 - 不一定是提交按钮。 您不必将提交按钮放在表单内部,但如果您这样做,则 preventDefault
将阻止默认的表单提交行为。
提交
为了补充已经提供的答案,HTML表单必须使用提交
按钮进行提交。
我不确定提交
按钮相对于链接有什么特殊的特点 - 它基本上调用了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 %>
这很简单:
然后:
<%= 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();
});
});
我不确定确切的语法,因此可能会有一些语法错误。随时提供更多帮助。