【发布时间】:2015-10-13 20:08:21
【问题描述】:
我知道这个问题已经被问过好几次了,但我找不到一篇可以完美解决我的问题的帖子。
背景:我有一个表单,目前正在使用 Ruby on Rails 和 jQuery 创建/更新 ajax-ly。对于每个创建/更新操作,我需要每 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() 不起作用。它没有捕获表单内容。我正在使用 cocoon 生成两层嵌套表单。我需要正确序列化表单内容。
更新:将“#report”替换为“form”即可。 非常感谢。
【问题讨论】:
-
什么不起作用?
-
嗨弗兰克,该网址无效。
-
我想帮助你,但我需要更多信息。最好同时显示您看到的错误消息(检查浏览器的开发人员控制台)。此外,通过说明您已经尝试过的事情来解释您认为问题出在哪里也很好。如果您有更多信息,请更新您的原始帖子。
-
谢谢弗兰克。我已经更新了问题描述。这是表单参数序列化的问题。有什么想法吗?
标签: jquery ruby-on-rails ajax forms autosave