如何处理使用jQuery时的回车与textarea文本追加
How to handle a carriage return when using jQuery append with textarea text
我有来自文本区域的文本,其中用户可能有合法的回车
如果文本中有一个我想保留的回车符,我该如何使用这个jQuery追加示例来做到这一点呢?
我正在生成这个html代码,如果变量$text中有回车,它将中断。
的例子:
$(".inner").append( "<textarea><?php echo $text; ?></textarea>" );
如果:
$text = "Cat
Dog";
然后我得到这个,它导致一个错误。
$( ".inner" ).append( "<textarea>Cat
Dog</textarea>" );
当append创建这个textarea html时,我能做些什么来保留回车?
您需要确保php值被正确地传递给javascript。最好的方法是将其编码为json。然后你可以使用.val()
来设置元素的值:
var myText = <?php echo json_encode($text); ?>;
$( ".inner" ).append( $('<textarea>').val(myText) );
这个来自php.net文档的例子现在对我有用了。From Replace回车符
// Order of replacement
$order = array("'r'n", "'n", "'r");
$replace = '<br />';
// Processes 'r'n's first so they aren't converted twice.
$newstr = str_replace($order, $replace, $text);
"br"标签在文本区域内工作,尽管我认为它不会。
您所需要做的就是:
PHP:$cleaned = str_replace("'r'n", "''n", $text);
JS:
$(".inner").append("<textarea><?= $cleaned ?></textarea>");
使用addcslashes
函数,它允许将回车编码为'n
(这与javascript兼容)。
$(".inner").append( "<textarea><?php echo addcslashes($text,"'r'n"); ?></textarea>" );
函数引用
对于@jeroen的回答,我拒绝回答。如果你有一个旧的PHP版本,不支持json_encode
,你可以使用Chengings的函数
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;
}
相关文章:
- 当值更改时,在servlet中自动获取textarea值,无需单击按钮
- 验证Javascript中的Textarea
- Textarea必需的attribut在javascript中不起作用
- chrome使用execCommand('copy')添加回车
- 可以't用回车符分隔那个字符串
- 更改代码镜像中TextArea的高度和宽度
- 如何防止回车键提交表单,但仍然允许回车工作
- javascript textarea createTextNode()
- textarea autoresize出现问题
- 如何访问用javascript动态生成的textarea的文本内容
- 使用回车按钮提交文本框表单
- 如何使用Jscript | JQuery在textArea中获取插入的|删除的字符串的索引和长度
- 单击TextArea'时,文本区域中的属性名称是什么;s上下箭头按钮
- 防止在按“回车”键时重新加载页面
- 使用jQuery的TextArea字符计数器
- Jquery在点击回车时自动完成
- TinyMCE初始化后,用javascript设置textarea值
- 将文本和html unicode字符添加到textarea元素中
- 如何处理使用jQuery时的回车与textarea文本追加
- jQuery textarea将回车替换为纯文本