使用ajax单击编辑时,用部分表单替换部分

时间:2013-11-08 21:33:52

标签: javascript jquery ruby-on-rails ajax

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

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

这是我的想法控制器:

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

我试过:

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

但这不起作用

然后我尝试了:

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

确保js正常工作且确实有效

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

好像你走在正确的轨道上。要经常检查的事情:

  • 您是否看到任何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"));