//下面三个变量用来保存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);
}
});
}
}
分享到:
相关推荐
以及一个回调函数,这个回调函数会在表单提交时执行,它创建一个新的p元素,把textarea中的内容替换掉换行符\n,并将其转换为br标签,然后将这个新元素添加到result元素中,并清空textarea的内容。 在实际应用中,...
这个功能在聊天室、论坛等需要快速输入并发送内容的场景中特别有用。jQuery库提供了一种简单的方法来实现这种功能。本篇文章将详细讲解如何使用jQuery实现Ctrl + Enter提交表单。 首先,我们需要一个HTML结构,包括...
9.5 表格的宽度固定后内容自动换行 9.6 表格的排序 9.7 表格的斜线 9.8 table中的文字滚动 9.9 JavaScript遍历table的行和列 9.10 表格按回车自动生成新行 9.11 单击单元格背景变色 9.12 单击表格某行后其他行隐藏 ...
9.5 表格的宽度固定后内容自动换行 9.6 表格的排序 9.7 表格的斜线 9.8 table中的文字滚动 9.9 JavaScript遍历table的行和列 9.10 表格按回车自动生成新行 9.11 单击单元格背景变色 9.12 单击表格某行后其他行隐藏 ...
在用户输入框(通常是`<input type="text">`)上绑定事件监听器,当检测到Enter键被按下时,发送消息并清空输入框。这通常涉及到JavaScript的事件处理和DOM操作。 总的来说,创建一个仿微信聊天窗口界面涉及的技术...
ENTER键可以让光标移到下一个输入框 (event.keyCode==13)event.keyCode=9"> 文本框的默认值 (this.defaultValue)"> title换行 obj.title = "123
sdfs " 获得时间所代表的微秒 var n1 = new Date("2004-...