我有一个textarea框,用户在其中输入消息,然后将其输出为paragraph标记。
我成功捕获了文本,但似乎无法捕获换行符。
heres my fiddle

理想情况下,我一直在寻找诸如<br/>\n这样的字符串替换。
任何帮助,将不胜感激,谢谢。

var txtBox = $('#myTextArea');
var txt = txtBox.val();

txtBox.keyup(function(){
        txt = txtBox.val();
        $('p.msg').html(txt);
});

txtBox.keydown(function (e) {
        var keyCode = e.keyCode || e.which;
        if (keyCode == 13) {
                $('p.msg').append('<br />');//ApplyLineBreaks(txt);
        }
});


和标记

<textarea id="myTextArea" class="form_0" name="Enter your message" type="text"></textarea>
<p class="msg" style="text-align: center;">msg here</p>

最佳答案

您可以仅通过keydown事件来执行此操作:

var txtBox = $('#myTextArea');
txtBox.keydown(function(e){
    var that = this;
    setTimeout(function(){
        $("p.msg").html(that.value.replace(/\n/g,"<br />"));
    },10);
});


http://jsfiddle.net/NJwhC/3/

setTimeout很重要,它允许在访问this.value之前对其进行填充。

10-04 16:05