jQuery post textarea wrap hard not show line break

时间:2014-10-19 00:33:34

标签: jquery

$('#submit').click(function(){
    $.post('/0002.php', $('#foo').serialize(),      
    function(output){
        $('#output').html(output);
    }); 
});

<form name="foo" id="foo">
    <textarea name="t" wrap="hard"></textarea>
    <span id="submit">Click</span>
</form>
<div id="output"></div>

// PHP

<?PHP
if(isset($_POST['t'])){
    echo nl2br($_POST['t']);
}
?>

我有一个textarea set wrap hard,但是当我使用jQuery post时它不起作用,jQuery post没有显示换行符。

任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我相信这是因为&#39;只有在你正常提交表格时才会以PHP传递。由于您是通过ajax进行的,因此必须将此参数作为参数传递给jquery中的post请求,而事实并非如此。在您的情况下您正在使用序列化整个表单,可能从textarea中删除新行。打开您的chromebug / firebug并检查您发送的确切内容作为POST请求的数据加载并提供更新,以便我们可以帮助

因此唯一的解决方案是:

  • 解析textarea并使用给定的宽度计算可以容纳多少个字符,然后在隐藏的输入/ div中放置一个或\ r \ n并发送它。虽然很难找到字符宽度,但字体应该是固定宽度。
  • 或者进行实际的POST,但是已经将其发送到iframe,就像我发送的链接(https://stackoverflow.com/a/2142815/986160)中所讨论的那样。