заставляем rails отправлять form_with через AJAX при нажатии клавиши

#ajax #ruby-on-rails-5 #onchange #keypress

#ajax #ruby-on-rails-5 #onchange #нажатие клавиши

Вопрос:

Я пытаюсь создать своего рода калькулятор с rails 5.2. Мне нужно обновить поля результатов, пока я пишу свои поля ввода. С AJAX все работает идеально, если я нажимаю клавишу ввода на клавиатуре, но это не сработает, если я попытаюсь автоматически отправить форму, как только поле будет изменено.

просмотр input.html.erb

 <%= form_with url: achatproprietaire_output_path do |form| %>
    <div class="form-group mb-3">
        <%= form.label :credits_conso, "Montant des crédits conso", for:"example-helping" %>
        <%= form.text_field :credits_conso, id: "example-helping", placeholder: "crédits conso", class: "form-control", id: "crédit_conso" %>
        <span class="help-block"><small>en euros par mois</small></span>
    </div>
  

js-файл вызывает un application.js

 $(document).ready(function(){
  $("#crédit_conso").keypress(function(){
    //this.form.trigger('submit.rails');
    Rails.fire(form, 'submit');
  });
});
  

файл js.erb правильно вызывается с помощью клавиши enter

 $('#output_col').replaceWith("<%= j render 'output', capacité_emprunt_maximal: @capacité_emprunt_maximal,
    montant_mensuel_maximal: @montant_mensuel_maximal,
    taux_interet: @taux_interet,
    taux_assurance: @taux_assurance %>");
  

И у меня нет render или redirect_to в моем контроллере.

Я также пытался включить onchange: «Rails.fire (this.form, ‘submit’)» в поля формы, но он отправляет форму без AJAX.

Комментарии:

1. Похоже, у вас есть несколько вопросов в одном: не могли бы вы разделить их, пожалуйста? Кроме того, что вы подразумеваете под «это не работает»: отправлен запрос или нет? Если это так, вы получаете сообщение об ошибке?

2. итак, мой вопрос: почему, когда я отправляю свою форму с помощью функции jQuery .submit(), запрос перезагружает все мое представление и не проходит через rails AJAX?

3. Еще раз привет! Прошло несколько месяцев, и у меня только что была такая же проблема на другом веб-сайте. И я до сих пор не знаю, как выполнить вызов AJAX, отправив форму с помощью JS, если кто-то здесь, я был бы признателен за помощь… Спасибо

4. Извините: я хотел сказать, что для получения ответов на StackOverflow (а не только на мои паршивые комментарии!), Вам нужно задавать по-другому: задавая по одному вопросу за раз и публикуя сообщения об ошибках. Таким образом, многие люди могут дать вам ответы!

5. Я решил свою проблему с помощью jQuery. Вот код, который хорошо работает в моей форме с поисковой формой ID. $("#searchform").keyup(function(e) { $("#searchform").submit(); }); Это правильно запускает запрос отправки через AJAX. И я получаю результаты своих вычислений без перезагрузки страницы, надеюсь, это поможет.