jquery - Rails 使用 jQuery/AJAX 自动保存表单

标签 jquery ruby-on-rails ajax forms autosave

我知道这个问题已被问过多次,但我找不到一篇文章可以完美解决我的问题。

背景:我有一个表单,当前正在使用 Ruby on Rails 和 jQuery 创建/更新 ajax。我需要为每个创建/更新操作每 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”即可。 非常感谢。

最佳答案

感谢您更新您的问题。尽管我感觉由于此检查,您的代码永远不会执行 ($("#report").length > 1) (只需删除 > 1 部分即可使其工作),真正的问题是表单的嵌套。

由于嵌套表单无效(请参阅 Is it valid to have a html form inside another html form? ),您无法定位另一个表单中包含的表单。

我在这里再次确认了https://jsfiddle.net/2tuo3yhv

您输出的 HTML 是否包含 <form>标签 <form> ?如果是这样,就只能使用外层形式来定位并保存了。

祝你好运,如果你能通过这种方式解决你的问题,请告诉我!

关于jquery - Rails 使用 jQuery/AJAX 自动保存表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33111704/

相关文章:

ruby-on-rails - 使用 Rails、backbone.js 和 accepts_nested_attributes_for 保存嵌套对象

ruby-on-rails - Sinatra 在服务器上安装时出现以下错误

javascript - 使用 Enquire.js 根据媒体查询切换功能

javascript - 如何删除主体前的容器

ruby-on-rails - 如何使用 Rails 在 PostgreSQL 中将时间列更改为整数列?

javascript - 如何防止刷新时 jquery ui 默认第一个选项卡处于事件状态

c# - MVC3 Ajax.BeginForm OnSuccess 无法在 Firefox 中运行

jQuery .on() 和 UpdatePanels

javascript - 如何创建动态 Ukit 模态 [Joomla]

javascript - Twitter Bootstrap 适用于触摸屏吗?