3 回答

TA貢獻1839條經(jīng)驗 獲得超15個贊
你想要:
停止提交的正常行為。
通過ajax將其發(fā)送到服務(wù)器。
收到回復(fù)并相應(yīng)地進行更改。
下面的代碼應(yīng)該這樣做:
$('form').submit(function() {
var valuesToSubmit = $(this).serialize();
$.ajax({
type: "POST",
url: $(this).attr('action'), //sumbits it to the given url of the form
data: valuesToSubmit,
dataType: "JSON" // you want a difference between normal and ajax-calls, and json is standard
}).success(function(json){
console.log("success", json);
});
return false; // prevents normal behaviour
});

TA貢獻1846條經(jīng)驗 獲得超7個贊
如果您:remote => true在表單上使用,則可以使用JavaScript通過以下方式提交它們:
$('form#myForm').trigger('submit.rails');

TA貢獻1797條經(jīng)驗 獲得超6個贊
在Rails 3中進行Ajax表單提交的首選方法是利用Rails-ujs。
基本上,您允許Rails-ujs為您完成ajax提交(并且您無需編寫任何js代碼)。然后,您只需編寫js代碼以捕獲響應(yīng)事件(或其他事件)并執(zhí)行您的操作即可。
這是一些代碼:
首先,在form_for中使用remote選項,因此默認情況下,表單將通過ajax提交:
form_for :users, remote:true do |f|
然后,當您要基于ajax響應(yīng)狀態(tài)(例如,成功響應(yīng))執(zhí)行某些操作時,請編寫如下的javscript邏輯:
$('#your_form').on('ajax:success', function(event, data, status, xhr) {
// Do your thing, data will be the response
});
有幾個事件,你可以鉤住。
- 3 回答
- 0 關(guān)注
- 509 瀏覽
添加回答
舉報