首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在使用jQuery追加文本区域文本时处理回车符

如何在使用jQuery追加文本区域文本时处理回车符
EN

Stack Overflow用户
提问于 2015-08-05 03:25:36
回答 4查看 1.7K关注 0票数 6

我有来自文本区的文本,其中用户可能有合法的回车。

如果文本有我想要保留的回车,我该如何使用这个jQuery追加示例来做到这一点。

我正在生成这段html代码,如果变量$text中有回车符,它就会中断。

示例:

代码语言:javascript
运行
复制
$(".inner").append( "<textarea><?php echo $text; ?></textarea>" );

因此,如果:

代码语言:javascript
运行
复制
$text = "Cat

Dog";

然后我得到了这个,它导致了一个错误。

代码语言:javascript
运行
复制
$( ".inner" ).append( "<textarea>Cat

Dog</textarea>" );

当append创建这个textarea html时,我可以做些什么来保留回车符?

EN

回答 4

Stack Overflow用户

发布于 2015-08-05 03:40:42

您需要确保php值被正确地传递给javascript。要做到这一点,最好的方法是将其编码为json。然后,您可以使用例如.val()来设置元素的值:

代码语言:javascript
运行
复制
var myText = <?php echo json_encode($text); ?>;
$( ".inner" ).append( $('<textarea>').val(myText) );
票数 1
EN

Stack Overflow用户

发布于 2015-08-05 03:48:44

使用addcslashes函数,它允许将回车符编码为\n (与javascript兼容)。

代码语言:javascript
运行
复制
$(".inner").append( "<textarea><?php echo addcslashes($text,"\r\n"); ?></textarea>" );

Function reference

更新

我拒绝回答@jeroen的答案,如果你有一个不支持json_encode的旧版本,你可以使用Chengings' function

代码语言:javascript
运行
复制
function escape_javascript_string($str){
    // if php supports json_encode, use it (support utf-8)
    if (function_exists('json_encode')) {
        return json_encode($str);
    }
    // php 5.1 or lower not support json_encode, so use str_replace and addcslashes
    // remove carriage return
    $str = str_replace("\r", '', (string) $str);
    // escape all characters with ASCII code between 0 and 31
    $str = addcslashes($str, "\0..\37'\\");
    // escape double quotes
    $str = str_replace('"', '\"', $str);
    // replace \n with double quotes
    $str = str_replace("\n", '\n', $str); 
    return $str;
}
票数 0
EN

Stack Overflow用户

发布于 2015-08-05 03:55:12

你所需要做的就是:

PHP:

代码语言:javascript
运行
复制
$cleaned = str_replace("\r\n", "\\n", $text);

JS:

代码语言:javascript
运行
复制
$(".inner").append("<textarea><?= $cleaned ?></textarea>");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31817614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档