Мне сложно заставить работать javascript без перезагрузки страницы. Я считаю, что проблема связана с турбо-ссылками.
Я устанавливаю слушателя onsubmit в такую форму
<%= form_for @cart, url: cart_path, html: {onsubmit: "addCart(event, #{@product.id})"} do |c| %>
Затем я отправляю форму через ajax следующим образом
function addCart(event, id){
event.preventDefault();
var quantity = $("#"+id+'_product_quantity').val()
$.post('/cart/add', {
product_id: id,
quantity: quantity
}, function(data, status, xhr){
if(xhr.status !== 200){
alert("There was an error. Please try again")
}else {
$("#"+id+'_product_submit').val("Added");
}
})
}
Все работает отлично, когда я перезагружаю страницу, но когда я перехожу на страницу по ссылке, javascript не вызывается. Странно то, что event.preventDefault()
работает. Когда я полностью удалю javascript, форма будет отправлена как обычная html-форма. Я новичок в jquery и не могу понять, как загрузить javascript.
document.ready( ... )
jQuery? - person Mark   schedule 07.03.2017