remote: true - кнопка отправки работает, но this.form.submit нет - PullRequest
0 голосов
/ 24 февраля 2020

У меня есть форма с формой, я хочу отправить данные по Ajax remote: true request.

Что работает: - когда я нажимаю кнопку подтверждения, все в порядке, я получить окно с предупреждением (это то, что я положил в свой файл js .erb)

Что не работает: - у меня есть форма поиска со многими полями, я хочу отправить форму при изменении любого из полей. Без ajax работает нормально, код "onchange =" this.form.submit (); " работает отлично. Но когда я использую Ajax, this.form.submit () все еще перезагружается страницы.

Ожидаемые результаты: - Когда я изменяю любое поле, он будет отправлять данные без перезагрузки страницы. Если это возможно, я хочу избегать обычного Ajax и использовать remote: Истинный метод form_with.

Что я пробовал - я использовал много jquery вариантов, например:

this.form.submit();
$('#id_of_submit_button').click(); // it works but i want to make it without using submit button
$(this).closest("form").submit();

Мой код:

show. html .erb

<%= form_with(url: "/cars/" + @car.id.to_s + "#formcarsection", id: "filterform", remote: true, method: "get") do |f| %>
  <%= f.text_field :vin, onchange: "this.form.submit();", class: "form-control" %>
  <input type="submit" id="submitbtn" value="Count" class="car__submit-btn">
<%= end %>

cars_controller. html .erb

def show
  respond_to do |format|
    format.html
    format.js { render 'cars/show.js.erb' }
  end
end

cars / show. js .erb

alert("Hello! I am an alert box!!");

1 Ответ

1 голос
/ 24 февраля 2020

remote: true необходимо добавить в каждое поле.

<%= f.text_field :vin, data: { url: "/cars/" + @car.id.to_s + "#formcarsection", remote: true, class: "form-control" } %>
...