【问题标题】:adding <br/> to the text-box when user press enter key in jquery当用户在 jquery 中按 enter 键时将 <br/> 添加到文本框
【发布时间】:2011-07-24 05:30:38
【问题描述】:

当用户点击回车按钮时,我想将&lt;br/&gt;(换行符)添加到文本框中。

如何在 jquery onkeyup 事件中实现它。谁能给我看看这个例子或任何实现它的好网站。

谢谢

【问题讨论】:

标签: jquery newline onkeyup


【解决方案1】:

从这里复制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>

好吧,我猜所有的文本编辑器(所见即所得)一直都在这样做。

【讨论】:

  • 感谢您的回答,但我不想显示
    当用户按 Enter 时如何将其添加到隐藏字段中。我是 jquery 新手,您能帮帮我吗
  • @sarath,好吧,我认为这些文本编辑器使用hidden 元素来存储值。这些家伙很聪明。
  • 我现在不想使用任何文本编辑器,因为我只在 2 个地方使用此文本框,而且我没有时间探索它,所以我只能在这里进行更改,以便我可以完成它早
  • @sarath 好吧,您可以将此值存储在隐藏元素中 - 没有其他方法(也可以放置一些(单个)字符),以便退格允许删除它。
【解决方案2】:

类似于:

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-27
  • 1970-01-01
  • 1970-01-01
  • 2016-08-13
  • 1970-01-01
  • 2011-10-03
相关资源
最近更新 更多