【问题标题】:How to avoid keeping html elements when saving text from a content editable div从内容可编辑的 div 保存文本时如何避免保留 html 元素
【发布时间】:2012-10-30 19:30:45
【问题描述】:

我有一个内容可编辑的 div,用户可以在其中输入他们的简历,然后保存信息。我使用表单提交,我提交的数据是$('#bio').html(),其中生物标签具有可编辑的属性内容。所有这一切都非常有效,除非用户点击回车然后它创建一个 div 标签和/或一个<br>,它们被保存为用户的简历,然后显示完整的 html 元素,看起来很草率。

我正在寻找仅保存文本的某种方式或仅显示文本的方式。理想情况下,我希望能够保留新行而不显示<div><br>

如果这很有用,我正在使用 Ruby-on-Rails 3。

谢谢,威尔斯

【问题讨论】:

  • 您提交 div 的 html 而不使用 textarea 是否有某些原因?您所描述的情况正是这些情况。
  • 不,我这样做实际上没有任何理由。我将尝试使用 textarea 并回复您。谢谢!
  • 所以目标是让用户编辑他的简历(如果他点击编辑),但在所有其他情况下正常显示。所以发生的情况是,在点击时,我将属性 contentEditable 设置为 true,这样他们就可以编辑 <div>,而无需将其转换为 <textarea>(如果有意义的话)

标签: jquery html ruby-on-rails-3


【解决方案1】:

在您的控制器中使用strip_tags 方法

> ActionController::Base.helpers.strip_tags("<br><div>sample")
> # => "sample"

或者如果您希望将
转换为“\n”(新行),那么就这样做

> "<br>sample".gsub(/<br>/, "\n") 
> "\nsample"

【讨论】:

  • 这个答案的问题是 &lt;br&gt;&lt;div&gt; 完全消失了,所以文本都被挤在一起了
  • 这不是你想要的吗?那么你可能必须使用 textarea
  • 我认为在这种情况下,您必须使用 br 标签存储文本,然后使用 br 标签显示描述,这将保留格式。但是上面的答案是您提出的问题的解决方案
  • 很抱歉,如果我不清楚。问题是我不想显示hi &lt;br&gt; I am a developer here,而是想显示hi (new line) I'm a developer here。您的解决方案,这绝对是朝着正确方向迈出的一步,将返回hi I am a developer here
  • 我没有得到你的例子,所以你不想要
    之后的任何东西?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-17
  • 2019-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多