【问题标题】:Add a line break to a html text area向 html 文本区域添加换行符
【发布时间】:2014-03-31 05:55:32
【问题描述】:

我试图在运行时将换行符添加到文本区域 (\n),但不是显示为换行符,而是将文本区域物理放入 \n。 我已经阅读了有关此的各种主题 Link 1link 2 没有任何成功。 这可能取决于文本区域内数据的更新方式,但这无关紧要。我的数据是通过 json 从 php 文件中引入并通过 jQuery 显示的

json 响应示例:

{"error":"2","err_msg":"","data":"<p class=\"left\">Aligned left text<\/p><br>Sub text <br>"}

然后应该显示文本区域中的文本:

[left]Aligned left text[/left]
Sub text

但是在我的页面上我得到了

[left]Aligned left text[/left]\nSub text

我有 php 函数可以将相关的 html 标签转换为我想要的,但由于某种原因换行符不起作用

$string = preg_replace_callback('(\<p class="left"\>(.*?)\</p\>)is', function($matches){
   $txt = $matches[1];
   return '[left]'.$txt.'[/left]\n';
}, $string);

$string = str_replace('<br>','\n',$string);

die(json_encode(array('error' => '2', 'err_msg' => '', 'data' => $string)));

有更多的格式和不同的标签,但只有换行符不起作用。

此更改应显示在文本区域中

$('#edit').val(json.data)
<textarea id="edit" ></textarea>

【问题讨论】:

  • 看起来您正在将正确的 HTML 换行符 (
    ) 替换为不正确的换行符 ('\n')。
  • 没有同样的问题没有换行符它只是显示
    我希望新行开始的地方
  • 你想在哪里显示被替换的字符串?

标签: javascript php jquery html json


【解决方案1】:

尝试使用 HTML 实体进行换行 &amp;#10; 和回车 &amp;#13;

【讨论】:

    【解决方案2】:

    不要使用用撇号封装的字符串文字,试试:

    $string = str_replace("&lt;br&gt;", "\n", $string)

    PHP 中'this string'"this string" 之间存在显着差异;在 PHP 中使用撇号封装你的字符串会将\n 视为\n 而不是chr(10)

    【讨论】:

      猜你喜欢
      • 2010-09-09
      • 2010-10-26
      • 1970-01-01
      • 2011-03-09
      • 1970-01-01
      • 2021-07-29
      • 1970-01-01
      • 2012-07-28
      相关资源
      最近更新 更多