我很難讓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()語法附加偵聽器時纔有這種印象。 –