【发布时间】:2015-10-06 13:31:31
【问题描述】:
我在提交表单时遇到了阻止页面重新加载的问题。
我的 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 我已经编辑了复选框。
【问题讨论】:
标签: javascript ruby-on-rails ruby page-refresh preventdefault