1
我在防止頁面重新提交表單時遇到了問題。在無需重新加載頁面的Rails中提交表單
我的HTML:
<%= form_for @foo, html: {multipart: true}, remote: true do |f| %>
<%= f.check_box :bar, :id => "bar_id", :onchange => "submit_function(this.form)" %>
<% end %>
我的javascript:
function submit_function(form){
form.submit(function (ev) {
ev.preventDefault();
});
}
我的控制器:
def update
// awesome things for update
respond_to do |format|
format.html { redirect_to request.referrer }
format.js {}
end
end
當單擊該複選框,JavaScript是觸發。 「form.submit」將表單發送給控制器,但在這種情況下整個頁面都會重新加載。我想阻止這個重新加載。
我也試過這個,但是,頁面也重新加載。
function submit_function(form){
form.submit(function() {
$.ajax({
type: this.method,
url: this.action,
data: $(this).serialize()
});
return false;
});
}
是否需要「提交 - 功能」更改之前或是否通過按複選框更改?
我現在已經嘗試了一些東西。現在邀請該頁面不再新增,但模型已更新。
function submit_function(form) {
$.ajax({
type: form.method,
url: form.action,
data: $(form).serialize()
});
return false;
}
現在我有更新部分被更改的問題。我怎樣才能用js來做到這一點?
好的,我明白了。請求將以js發送,不再觸發頁面重新加載。使用JavaScript我編輯了複選框。
如果我試試這個: - >功能submit_function(形式){ form.submit(函數(){$ 阿賈克斯( { 類型:this.method, url:this.action, data:$(this).serialize() }); return false; }); } ...在JavaScript中,它也重新加載 – DraGott
development.log是什麼意思?像「處理MyController#更新爲HTML」一樣?或「作爲JS」? –
如果我把這個複選框作爲'HTML'發送。因此它在控制器中觸發「redirect_to request.referrer」。我怎樣才能做到'js'? – DraGott