`
stonejava
  • 浏览: 79007 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

TextArea内按Enter发送消息并清空内容 换行

 
阅读更多
//下面三个变量用来保存KEY_DOWN事件时键盘的状态
var shiftKey:Boolean;
var ctrlKey:Boolean;
var keyCode:int;
var messageInput:TextArea;
messageInput.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);
messageInput.addEventListener(TextEvent.TEXT_INPUT,onTextInput);
private function onKeyDown(e:KeyboardEvent):void{
//如果按下Enter时还按下Shift/Ctrl,则换行
if( e.keyCode==Keyboard.ENTER && (e.shiftKey || e.ctrlKey) ){
callLater(function():void{ //注意这个callLater
var msg:String = messageInput.text;
var part1:String = msg.substring(0, messageInput.selectionBeginIndex);
var part2:String = msg.substring(messageInput.selectionEndIndex, 0x7fffffff);
var selIndex:int = messageInput.selectionBeginIndex + 1;
messageInput.text = part1 + "\n" + part2;
messageInput.setSelection(selIndex,selIndex);
});
keyCode = -1; //标识本次按键不需要TEXT_INPUT事件配合处理
return;
}
shiftKey = e.shiftKey;
ctrlKey = e.ctrlKey;
keyCode = e.keyCode;
}
private function onTextInput(evt:TextEvent):void{
if(keyCode == -1){
return;
}
if(keyCode==Keyboard.ENTER && !shiftKey && !ctrlKey){
evt.preventDefault();
callLater(function():void{
//sendMessage()即为发送消息的方法,它应该返回一个Boolean值,以此来决定是否清空消息框
if( sendMessage(messageInput.text) ){
messageInput.text = "";
messageInput.htmlText = "";
messageInput.setSelection(0,0);
}
});
}
}
分享到:
评论

相关推荐

    使用JQuery实现Ctrl+Enter提交表单的方法

    以及一个回调函数,这个回调函数会在表单提交时执行,它创建一个新的p元素,把textarea中的内容替换掉换行符\n,并将其转换为br标签,然后将这个新元素添加到result元素中,并清空textarea的内容。 在实际应用中,...

    jquery实现Ctrl+Enter提交表单的方法

    这个功能在聊天室、论坛等需要快速输入并发送内容的场景中特别有用。jQuery库提供了一种简单的方法来实现这种功能。本篇文章将详细讲解如何使用jQuery实现Ctrl + Enter提交表单。 首先,我们需要一个HTML结构,包括...

    《程序天下:JavaScript实例自学手册》光盘源码

    9.5 表格的宽度固定后内容自动换行 9.6 表格的排序 9.7 表格的斜线 9.8 table中的文字滚动 9.9 JavaScript遍历table的行和列 9.10 表格按回车自动生成新行 9.11 单击单元格背景变色 9.12 单击表格某行后其他行隐藏 ...

    程序天下:JavaScript实例自学手册

    9.5 表格的宽度固定后内容自动换行 9.6 表格的排序 9.7 表格的斜线 9.8 table中的文字滚动 9.9 JavaScript遍历table的行和列 9.10 表格按回车自动生成新行 9.11 单击单元格背景变色 9.12 单击表格某行后其他行隐藏 ...

    gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点

    在用户输入框(通常是`<input type="text">`)上绑定事件监听器,当检测到Enter键被按下时,发送消息并清空输入框。这通常涉及到JavaScript的事件处理和DOM操作。 总的来说,创建一个仿微信聊天窗口界面涉及的技术...

    js使用小技巧

    ENTER键可以让光标移到下一个输入框 (event.keyCode==13)event.keyCode=9"> 文本框的默认值 (this.defaultValue)"> title换行 obj.title = "123&#13sdfs&#32" 获得时间所代表的微秒 var n1 = new Date("2004-...

Global site tag (gtag.js) - Google Analytics