单击元素并编辑内容(如文本区域)

Posted

技术标签:

【中文标题】单击元素并编辑内容(如文本区域)【英文标题】:Click on element and edit the content (like a textarea) 【发布时间】:2013-05-23 08:45:32 【问题描述】:

我想要一个包含一些文本的元素(从数据库调用),单击该元素并能够编辑文本,然后当我单击该元素时,将更新的文本保存在数据库中。

我主要想知道这样做的“最佳”方式。我考虑过的两件事是在您单击/关闭元素时交换元素和文本区域。

如果用户已登录,只需将所有可编辑元素加载为 ,其样式在单击之前不会看起来像文本区域。

一个页面上会有 5-100 个不同的可编辑元素,所以我真的只需要最好的性能解决方案来处理这样的事情。我可以想象用 js 交换元素会比只检查用户是否是管理员然后加载 100 个文本区域要慢。

哪个是最好的解决方案? (也接受其他替代方案)

【问题讨论】:

用户必须执行一些操作(即单击 div)才能将其从 div 更改为 textarea,对吗?然后我会将它们全部显示为 div 元素,并仅在单击时交换它们。 @user1032531 确实如此。它将废除常规管理面板,而不是半所见即所得地编辑内容。管理员已登录,正常查看页面,单击他要更改的部分,更改为文本区域,单击关闭它会更改回并保存更改 【参考方案1】:

“最佳”在这里的问题中表现不佳,因为您应该有一个特定的问题,但我可以建议使用ContentEditable 区域吗?有了它,它可以兼作显示和输入元素。

然后使用事件捕获更改并提交。

【讨论】:

以为 ContentEditable 与旧浏览器不兼容,实际上是well supported(把这个给可能和我一样想的人)

以上是关于单击元素并编辑内容(如文本区域)的主要内容,如果未能解决你的问题,请参考以下文章

什么是最好的非所见即所得文本区域编辑器?

虚拟键盘隐藏字段/文本区域/内容可编辑(隐藏在键盘下方)

TinyMCE 在动态生成的文本区域上不可点击和编辑

单击时在 Java 中添加类似动态文本区域的对象

在控制器中编辑文本区域

Html 文本区域占位符