使用Rails和jQuery处理内联编辑表单的好方法

时间:2009-04-23 23:28:26

标签: jquery ruby-on-rails

我有一系列项目,显示在一系列DIV中。当有人点击“编辑”链接时,我想用一个表格替换div,让他们以一种很好的方式编辑该项目的内容。

我正在考虑处理这个问题的理想方法。我是否为列表中的每个项目创建隐藏的编辑表单,并挂钩编辑链接以显示它,如下所示:

<div>
    <a href="#">edit</a> Item One
    <div id="edit_1202" class="editform">Edit form goes here</div>
</div>
<div>
    <a href="#">edit</a> Item Two
    <div id="edit_2318" class="editform">Edit form goes here</div>
</div>

或者有更好的方法来获取数据并将表单的HTML插入正确的位置吗?记住,我正在使用jQuery,所以我不能使用原型助手。

谢谢!

3 个答案:

答案 0 :(得分:6)

答案的最短路径就像往常一样,Ryan Bates'Railscasts。他有using jQuery with Rails的一集。虽然他没有专门介绍它,但是可以从他展示的基础知识中制作出一个相当优雅的解决方案。

在我的情况下,将覆盖编辑链接以向服务器发送ajax请求,该服务器返回javascript以使用表单编辑代码构建部分。一旦你知道怎么做就很容易!

答案 1 :(得分:2)

我建议使用某种插件。这是一个非常标准的功能,为什么重新编写某人已经写过的东西?查看jeditable插件。

阅读完评论后,是的。如果你想要让一切都可以立即编辑,我可能会用jQuery来做。我不认为我曾经看过一个可以同时处理多个字段的插件。

答案 2 :(得分:2)

我认为这就是你要找的:jquery edit in place plugin

http://davehauenstein.com/code/jquery-edit-in-place/example/ http://code.google.com/p/jquery-in-place-editor/

我最近使用它并且它起作用了。查看上面第一个链接中的示例。

如果那不是您想要的,您可能想要加载一个远程页面 jquery ajax加载。然后你就可以添加你想要的任何形式元素。

http://docs.jquery.com/Ajax/load

$('.yourlinkid').click(function(){
   var id = $(this).attr('id');
   $("div#editThisDiv").load("/events/editAjax/" + id);
});