我很难让javascript在不重新加载页面的情况下工作。我相信这个问题与涡轮链接有关。Rails 5使用turbolink加载JS
我喜欢这个
<%= 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");
}
})
}
一切的的onsubmit监听器设置为形式完美的作品,当我重新加载页面,但是当我通过链接转到页面的JavaScript不会被调用。奇怪的是,event.preventDefault()
正在工作。当我完全删除JavaScript表单将提交像一个正常的HTML形式。我是一个相当新的jQuery,并不知道如何获得JavaScript加载。
你使用jQuery的'document.ready(...)'回调吗? – Mark
不,我不是。我只是在通过$(“#id”)。submit()语法附加侦听器时才有这种印象。 –