#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. И я получаю результаты своих вычислений без перезагрузки страницы, надеюсь, это поможет.