我正在尝试使用下面的jQuery代码加载页面时自动提交表单:
$(document).ready(function(){
$("#finds_expense").submit();
});
表单提交需要参数为JS。当我手动提交表单时,它完美地工作,但是当我使用jQuery的(document).ready
时,不知何故,参数以HTML格式传递,而不是JS。我很感激任何帮助。已经被这个问题困扰了很长一段时间。 TQ。
以下是finds_expense
的代码:
<div id="month-lookup">
<%= form_tag search_expense_path, remote: true, method: :get, id: "finds_expense" do %>
<div class="form-group row no-padding text-center col-md-8">
<div class="col-md-4">
<%= text_field_tag :month, params[:month],
placeholder: "month",
autofocus: true,
class: "form-control search-box input-lg" %>
</div>
<div class="col-md-4">
<%= text_field_tag :year, params[:year],
placeholder: "year",
autofocus: true,
class: "form-control search-box input-lg" %>
</div>
<div class="col-md-2">
<%= button_tag(type: :submit, class: "btn btn-lg btn-success", id: "submit_expense") do %>
<i class="fa fa-search"></i> Send
<% end %>
</div>
</div>
<%end%>
如果在表单对象中调用.submit()
方法,则remote: true
选项将不起作用。
一个选项是使用.trigger('submit')
触发表单。
另一个解决方案可能是这样的:
$(document).ready(function(){
var formData = $("#finds_expense").serialize();
$.ajax({
url: '...',
data: formData,
type: 'POST',
contentType: 'apploication/script'
});
});