Div + contenteditable【h5】属性制作的编辑框和textarea制作的文本域如何实现换行

什么是contenteditable?

HTML中的contentEditable的属性可以打开某些元素的可编辑状态.也许你没用过contentEditable属性.甚至从未听说过.contentEditable的作用相当神奇.可以让div或整个网页,以及span等等元素设置为可写。我们最常用的输入文本内容便是input与textarea,使用contentEditable属性后,可以在div,table,p,span,body,等等很多元素中输入内容.
如果想要整个网页可编辑,请在body标签内设置contentEditable
contentEditable已在html5标准中得到有效的支持。
在IE8下设置表格可写不支持,其他元素没有问题。在Firefox运行一切正常。谷歌浏览器运行一切正常。

如何实现可编辑的Div换行(Div + contenteditable)

  1. 制作一个可编辑的Div
<div id="editor"  placeholder="请输入您的内容" contenteditable="true" style="overflow-y:scroll;">
</div>
  1. 给editor绑定键盘监听方法,回车发送消息,shift + 回车文本换行
//绑定键盘监听事件
    $("#editor").bind('keydown',function(e){
        if(e.keyCode == 13 && !e.shiftKey){
            //按下了enter键,发送消息
            sendmsg();
            e.preventDefault();
        }
        if(e.shiftKey && e.keyCode == 13){
            按下了shift + enter组合键,文本换行
            var content=$("#editor").html();
            $("#editor").html(content+"<div><br/></div>");
            //e.preventDefault();
            //加上e.preventDefault(); shift+ enter效果会有问题,换行符号加上了,但是光标不会跑到下一行,而是回到原来行的行首
        }
        return;
    });

如何实现textarea换行

  1. 制作一个文本域
<textarea class="msgedit" cols="82" id="send_msg_text"  rows="5"></textarea>
  1. 给文本域绑定键盘监听事件,回车发送消息,shift + 回车文本换行
//绑定键盘按下时,文本域触发的事件
    $("#send_msg_text").bind('keydown',function(e){
        if(e.keyCode == 13 && !e.shiftKey){
            //按下了enter键,发送消息
            onSendMsg();
            e.preventDefault();
        }
        if(e.shiftKey && e.keyCode == 13){
            //按下了shift + enter组合键,文本换行
            var content=$("#send_msg_text").val();
            $("#send_msg_text").val(content+"\n");
            e.preventDefault();
        }
        return;
    });
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值