我正在尝试使用表单标记之外的提交触发器提交rails表单。所以我有我的表格:
<% remote_form_for Package.new,
:url => { :action => :rate_shop, :ids_sales_order_id => params[:ids_sales_order_id],
:id => @shipment.id }, :loading => '$("#loading").overlay({api: true}).load(); ' + visual_effect(:appear, 'priceShopInProgress'),
:complete => visual_effect(:fade, 'priceShopInProgress', :duration => 2),
:update => 'itemSelection' do |f| %>
我有我的jQuery:
$('#priceSelectSubmit').click(function() {
$('#new_item').submit();
});
我的触发器:
<%= submit_tag :Submit, :value => 'Select item', :id => 'priceSelectSubmit', :name => 'priceSelectSubmit' %>
这是交易。提交按钮正确地提交表单(并加载一个包含所有正确数据的新页面),但不会像按钮在表单标签内那样触发表单(特别是:加载东西非常重要)。我需要AJAX响应和加载叠加等等。
我的约束:
答案 0 :(得分:2)
好的,所以我从重复的谷歌搜索中找到了它。感谢tadman让我走上了正确的道路!
$('form').trigger('onsubmit')
这就是jQuery允许您提交表单的方式,就像用户点击提交一样。
答案 1 :(得分:0)
您可以尝试使用onsubmit()调用:
$('#priceSelectSubmit').click(function() {
$('#new_item')[0].onsubmit();
});
当您通过用户操作“提交”表单时会调用onsubmit函数,但是当您直接在表单上调用submit方法时,通常会绕过该函数。
如果您查看生成的实际HTML,您可以看到在onsubmit =“...”块中进行的Ajax调用。
编辑:修改为取消引用jQuery代理对象。