gpt4 book ai didi

jquery - 如何更改 jQuery 自动保存提交中表单提交的操作? (在 rails 中)

转载 作者:行者123 更新时间:2023-12-01 08:20:20 25 4
gpt4 key购买 nike

我有一个评论模型,我希望人们能够为其保存草稿。它有一个 bool 属性“草稿”,允许保存评论(但尚未显示)。我正在为这些评论创建自动保存功能。

当前的注释表单运行如下:变量@comment由 Controller 初始化为@comment = Comment.new。那么评论的形式是:

  <%= form_for @comment, :remote => true do |f| %>
<%= f.text_area :title, :class => "inputform" %>
<%= f.text_area :content, :class =>"inputform" %>
<%= f.submit "Submit", :class => "button" %>
<% end %>

所以,正如我所说,我希望它自动保存。为了开始完成它,我编写了这个 autosave_comments.js 文件:

 $(document).ready(function(){
setInterval(function() {
$('new_comment .temp').html('<input type="hidden" name="comment[draft]" id="comment_draft" value="true" />');
$('#comment_form form[data-remote]').submit();
$('new_comment .temp').html('');
}, 10000);
});

此代码将草稿的输入设置为 true,提交表单,然后删除草稿的该输入。该代码效果很好,因为它提交表单并将草稿保存到 Controller 。然而,每次提交都会保存一个新条目(即每 10 秒就有一条新评论作为草稿保存在数据库中),而不是更新第一个条目。

最后一点背景知识:当表单提交到评论 Controller 时,它会提交到创建操作:

 def create
@comment = params[:comment]
if @post.save
if params[:draft]
flash.now[:notice] = "draft autosaved"
else
flash.now[:success] = "comment created"
end
else
#code to output errors
end
respond_to do |format|
format.html
format.js
end
end

然后引用 create.js.erb 文件:

    <% post = user.posts.last %>
<% if post.draft == false %>
//code here deals with a true submission of a comment, to append tables etc.
<% else %>
//maybe some code here could alter the form on draft submission to make it update the same post next time?
<% end %>

所以我想知道,我希望第一份草稿提交能够正常工作,并在评论表中创建一个条目。但随后我希望表单在后续自动保存时更新该评论,并在该人提交评论以供发布时将该评论保存为非草稿最终评论。在这些文件中的某个地方是否有我可以完成此任务的概述?

谢谢!

最佳答案

create.js.erb中:

$('#comment_form').attr('action', '<%= comment_path(@comment) %>');

只需确保您的评论表单的 ID 为 comment_form,或者相应地更改 jQuery 对象。 Rails 应该负责剩下的事情。

编辑 我忘记了您还需要像 Rails 那样伪造 PUT 请求。由于某些浏览器不支持 PUT 请求,rails 使用 POST,然后添加隐藏表单字段:

<input name="_method" type="hidden" value="put" />

所以只需在 create.js.erb 中生成它即可:

$('#comment_form').append('<input name="_method" type="hidden" value="put" />');

关于jquery - 如何更改 jQuery 自动保存提交中表单提交的操作? (在 rails 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7727901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com