我有一系列项目,显示在一系列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,所以我不能使用原型助手。
谢谢!
答案 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);
});