Ruby on Rails - form.submit()Jquery不将参数作为JS传递

问题描述 投票:1回答:1

我正在尝试使用下面的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%>

javascript jquery ruby-on-rails
1个回答
0
投票

如果在表单对象中调用.submit()方法,则remote: true选项将不起作用。

一个选项是使用.trigger('submit')触发表单。

另一个解决方案可能是这样的:

$(document).ready(function(){
  var formData = $("#finds_expense").serialize();
  $.ajax({
   url: '...',
   data: formData,
   type: 'POST',
   contentType: 'apploication/script'
  });
});
© www.soinside.com 2019 - 2024. All rights reserved.