Rails使用jquery自动保存表单

时间:2012-09-13 20:45:18

标签: ruby-on-rails ruby ajax jquery

我正在开发应用程序,用户可以在其中创建博客帖子,博客帖子会定期更新。我找到了jQuery autosave plugin来处理自动保存,但我仍遇到问题。

  1. 当我使用firebug进行调试时,我只看到GET请求,因此页面没有更新,我不确定如何在GET请求后调用POST。

  2. 它不会因为我输入或每3秒更新一次,但是当我在表单字段外单击时它会更新。无论如何要让它每隔3秒更新一次?

  3. 我的代码列在下面

    的application.js

        jQuery(function($) {
          $("#main-form").autosave({
            callbacks: {
              trigger: ["change", function() {
                var self = this;
    
                $("[name=save]").click(function() {
                  self.save();
                });
              }],
              save: {
                method: "ajax",
                options: {
                  success: function() {
                    alert("saved!");
                  }
                }
              }
            }
          });
        });
    

    post_controller.rb

    def update
      @post = Post.find(params[:id])
    
      respond_to do |format|
        if @post.update_attributes(params[:post])
          format.html { redirect_to semester_post_path, notice: 'post was successfully updated.' }
          format.json { head :ok }
        else
          format.html { render action: "edit" }
          format.json { render json: @post.errors, status: :unprocessable_entity }
        end
      end
    end
    

1 个答案:

答案 0 :(得分:1)

我相信你已经继续前进,但只是为了缩小这篇文章的差距。当场地失去焦点时会发生OnChange,所以你所看到的似乎是按照设计和正常设计运作。

以下是使用timeouts to autosave via AJAX的问题/答案的链接。

自动保存意见:

我不确定你真的想要在文件被正式提交之前已经启用了自动保存,但是我会发布我最喜欢的2。

  1. 某些表单往往会为后端存储提供大量移动部件,并且在将大量数据填充到表之前,应首先提交。 (IMHO)

  2. 在第一次“真实”提交之前留下他们(不是自动保存)的另一个理由是因为在他们点击提交之前他们可能并不真的希望您在系统中拥有该信息。

  3. 您多久在网上创建一个表单然后决定您不想填写该信息? ...如果我从实际上决定退出注册的网站上获得传单或电子邮件或致电,我会感到很沮丧!