当用户在jquery中按Enter键时,在文本框中添加<br/>

时间:2011-03-28 05:39:53

标签: jquery newline onkeyup

当用户点击输入按钮时,我想在文本框中添加<br/>(换行符)。

如何在jquery onkeyup事件中实现它。可以向我展示一个实例或任何实现它的好网站。

谢谢

2 个答案:

答案 0 :(得分:7)

从此处复制Caret position in textarea, in characters from the start请参阅 DEMO

<script src="jquery.js"></script>
<script>
    $(function ()
    {
        $('#txt').keyup(function (e){
            if(e.keyCode == 13){
                var curr = getCaret(this);
                var val = $(this).val();
                var end = val.length;

                $(this).val( val.substr(0, curr) + '<br>' + val.substr(curr, end));
            }

        })
    });

    function getCaret(el) { 
        if (el.selectionStart) { 
            return el.selectionStart; 
        }
        else if (document.selection) { 
            el.focus(); 

            var r = document.selection.createRange(); 
            if (r == null) { 
                return 0; 
            } 

            var re = el.createTextRange(), 
            rc = re.duplicate(); 
            re.moveToBookmark(r.getBookmark()); 
            rc.setEndPoint('EndToStart', re); 

            return rc.text.length; 
        }  
        return 0; 
    }

</script>
<div id="content">
    <textarea id="txt" cols="50" rows="10"></textarea>
</div>

好吧,我想所有文字编辑(WYSIWYG)都会一直这样做。

答案 1 :(得分:1)

有些事情:

$('#some-field').keyup(function(e){
  if (e.keyCode == '13') {
     e.preventDefault();
     $(this).append("<br />\n");
  }
});