我有一个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
之前对其进行填充。