Я знаю, что этот вопрос задавался несколько раз, но я не смог найти ни одного поста, который идеально решает мою проблему.
Фон: у меня есть форма, которая в настоящее время создается/обновляется ajax-ly с использованием Ruby on Rails и jQuery. Мне нужно автоматически сохранять содержимое формы каждые 30 секунд для каждого действия создания/обновления. Сейчас я сосредоточен на том, чтобы заставить форму автосохранения работать.
У меня есть что-то вроде ниже:
#controller method
def create
@report = Report.create(params)
end
#js
$(function() {
if ($("#report").length > 1) {
setTimeout(autoSaveForm, 30000);
}
});
function autoSaveForm() {
$.ajax({
type: "POST",
url: "report/create",
data: $("#report").serialize(),
dataType: "script",
success: function(data) {
console.log(data);
}
});
setTimeout(autoSaveForm, 30000);
}
Обновление: при ближайшем рассмотрении $("#report").serialize() не работает. Он не фиксирует содержимое формы. Я использую кокон для создания двухслойных вложенных форм. Мне нужно правильно сериализовать содержимое формы.
Обновление: замените «#report» на «form». Большое спасибо.