Jquery .val() 不返回文本区域中的换行符
我在文本区域中遇到换行问题。
我使用 .val() 函数获取文本:
var messageBody = $('#composeInput').val();
这是我的 ajax 请求
$.ajax({
url: 'serverScripts/messages/addMessage.php',
data: 'messageBody='+messageBody+'&invitedJSONText='+invitedJSONText,
success: function(){
//Do something
}
});
和 PHP:
$messageBody = nl2br(mysql_real_escape_string($_GET['messageBody']));
文本:
嗨!
你好吗?
变成:
嗨!你好吗?
如果我将变量 messageBody 插入另一个 div 元素,我看不到任何 \n 这是否正常。我该如何解决这个问题?
I got problem with line breaks in a textarea.
I get the text with .val() function:
var messageBody = $('#composeInput').val();
This is my ajax request
$.ajax({
url: 'serverScripts/messages/addMessage.php',
data: 'messageBody='+messageBody+'&invitedJSONText='+invitedJSONText,
success: function(){
//Do something
}
});
And PHP:
$messageBody = nl2br(mysql_real_escape_string($_GET['messageBody']));
The text:
Hi!
How are you?
Becomes:
Hi! How are you?
If I insert the variable messageBody to an another div-element I can't see any \n is this normal. How do I fix this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
当
data
参数作为字符串传递时,您必须自己对其进行 URL 编码:但是将
data
参数作为对象传递要简单得多; jQuery 自动编码数据:PS:您可以设置 CSS
white-space
属性到元素上的pre-line
以将换行符显示为换行符。When the
data
parameter is passed as a string, you must URL encode it yourself:But it is far more simpler to pass the
data
parameter as an object; jQuery encodes the data automatically:PS: instead of
nl2br
you can set CSSwhite-space
property topre-line
on an element to display newline as newline.您可能想看看 PHP 的 nl2br 函数。换行符不会在浏览器中呈现,因此您必须用换行符替换它们。http://us.php.net/nl
You may want to look at PHP's nl2br function. Newlines characters do not render in the browser, so you have to replace them with line breaks.http://us.php.net/nl
这不是一个已知问题吗?
http://api.jquery.com/val/
解决方法是使用 valHooks,如注释中所述部分。
Is not that a known issue?
http://api.jquery.com/val/
The workaround is using valHooks as explained in the Note section.