单击“使用 ajax 编辑”时将部分替换为表单部分

Replacing a partial with a form partial when clicking edit with ajax

本文关键字:替换 表单部 使用 ajax 编辑 单击      更新时间:2023-09-26

在我的rails应用程序中,我希望能够单击"编辑"以将部分显示替换/交换为表单部分。

我已经通过在编辑链接中添加 remote:true 来开始应用 ajax 和 jquery。然后我创建了一个名为 edit.js.erb 的 js 文件来调用 ajax

这是我的想法控制器:

def edit
   @idea = Idea.find_by_permalink(params[:id])
end

在编辑.js.erb 我试过:

$("data-model[idea-basic-show]").hide().after("<%= j render('idea_basic_edit')%>");

但这没有用

然后我尝试:

 $("#art_edit_show").replaceWith("ART EDIT PARTIAL");

确保 JS 正常工作并且确实有效

我在这里做错了什么?

看起来你走在正确的轨道上。 要始终检查的事项:

  • 您是否看到任何JS错误? 检查浏览器的 JS 控制台。
  • 编辑 JS 是否实际运行? 检查您的服务器日志以确保操作正在运行,如果是,请在 edit.js.erb 中输入一个alert('Got here');,看看是否出现。

在你的第一个例子中,jQuery选择器看起来很奇怪。 我不熟悉这种选择器的用法。 您可能需要检查一下。

第二个肯定应该做一些事情,前提是页面中有一个 ID art_edit_show可见的元素。 确保元素具有id="art_edit_show"而不是id="#art_edit_show",这是一个容易犯的错误。

我喜欢使用的一种调试技术是控制台记录我尝试替换的选择器。 在 edit.js.erb 中,在替换元素之前执行以下操作:

console.debug($("#art_edit_show"));