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