[英]submit form in Rails without page reload
我在阻止pagereload提交表單時遇到問題。
我的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 .submit()的AJAX rails復選框
他們在那里所做的是重新定義表單提交,改變了行為。
並作為基本建議:使用比較寬松的JS而不是內聯的onchange事件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.