/* Handle keyboard input in the text input area
*/
function OnTypeInput ( HTMLElement )
{
external.globals( 'autoawaytime' ) = 0;
if ( event.keyCode == 13 && !window.event.shiftKey )
{
if ( ! document.getElementById( 'btn-send' ).disabled )
SendMessage();
return false;
}
}
上面的代码作用是按回车发送信息,如果按下回车的同时按下shift那么就直接直接在文本框中输入回车。
但是我将shiftKey改成ctrlKey为什么就无效呢?根本就没有输入个回车。我是想实现跟qq一样的,输入ctrl+回车后直接换行。ps:上面的代码是一个聊天工具中的叫padion。
*/
function OnTypeInput ( HTMLElement )
{
external.globals( 'autoawaytime' ) = 0;
if ( event.keyCode == 13 && !window.event.shiftKey )
{
if ( ! document.getElementById( 'btn-send' ).disabled )
SendMessage();
return false;
}
}
上面的代码作用是按回车发送信息,如果按下回车的同时按下shift那么就直接直接在文本框中输入回车。
但是我将shiftKey改成ctrlKey为什么就无效呢?根本就没有输入个回车。我是想实现跟qq一样的,输入ctrl+回车后直接换行。ps:上面的代码是一个聊天工具中的叫padion。
function document.onkeydown()
{
status=event.keyCode;
if(event.keyCode==17)
{
alert("sadf");
}
}
那个是个事件其实,你细细看我代码和说明就知道了我就是要将原来的shift+enter输入一个回车,改成ctrl+enter,因为qq中一直用的这一对,习惯了
{
external.globals( 'autoawaytime' ) = 0;
if ( event.keyCode == 13 && !window.event.ctrlKey )//为什么这里改成ctrl不行?
{
if ( ! document.getElementById( 'btn-send' ).disabled )
SendMessage();
return false;
}
}
function keypress(event) {
event = event || window.event;
var code = event.keyCode || event.which;
alert(code);
//是ctrKey
if (code == 13 && !event.ctrKey) {
alert(123);
}
}
function keypress(event) {
event = event || window.event;
var code = event.keyCode || event.which;
alert(code);
if (code == 13 && !event.ctrlKey) {
alert(123);
}
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD> <BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
function document.onkeydown()
{
var ev = null;
if (window.event){
ev = window.event;
}else{
ev = moz_ev;
}
if (ev != null && ev.ctrlKey && ev.keyCode == 13)
{
alert("ctrl+enter");
} } //-->
</SCRIPT>
</BODY>
</HTML>
{
external.globals( 'autoawaytime' ) = 0;
if ( event.keyCode == 13 && !window.event.shiftKey )
{
if ( ! document.getElementById( 'btn-send' ).disabled )
SendMessage();
return false;
}
}
<input type="text" onkeydown="run(event)"></input>
<script>
function run(event){
var e=event||window.event;
if(e.keyCode==13&&e.ctrlKey==1){
alert('ctrl+enter down!!')
}
}
<TR valign=top height=60>
<TD colspan=2>
<TEXTAREA
id=send-text
onkeydown="return OnTypeInput( this )"
onpropertychange="document.getElementById( 'btn-send' ).disabled = ( /^\s*$/ ).test( this.value )"
></TEXTAREA>
</TD>
<TD align=right valign=middle>
<INPUT
id=btn-send
type=submit
oncontextmenu="return false"
onclick="SendMessage()"
accesskey="s"
disabled
>
</TD>
</TR>function OnTypeInput ( HTMLElement )
{
external.globals( 'autoawaytime' ) = 0; /*if ( event.keyCode == 13 && window.event.ctrlKey )//我测试的
{
document.getElementById("send-text").value=document.getElementById("send-text").value + '\r\n';
document.getElementById("send-text").refresh;
}*/ if ( event.keyCode == 13 && !window.event.shiftKey )
{
if ( ! document.getElementById( 'btn-send' ).disabled )
SendMessage();
return false;
}
}
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD> <BODY>
<TABLE>
<TR valign=top height=60>
<TD colspan=2>
<TEXTAREA id="send-text" onkeydown="return OnTypeInput(this)"></TEXTAREA>
</TD>
</TR> </TABLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
function OnTypeInput ( HTMLElement )
{
// external.globals( 'autoawaytime' ) = 0; /*if ( event.keyCode == 13 && window.event.ctrlKey )//我测试的
{
document.getElementById("send-text").value=document.getElementById("send-text").value + '\r\n';
document.getElementById("send-text").refresh;
}*/ if ( event.keyCode == 13 && window.event.ctrlKey )
{
//if ( ! document.getElementById( 'btn-send' ).disabled )
SendMessage();
return false;
} }
function SendMessage()
{
alert(document.getElementById('send-text').value);
}
//-->
</SCRIPT>
</BODY>
</HTML>
1.按下回车键,文本框中换行
2.按下ctrl+回车键,alert xxx预期是这样的:
1.按下回车键,那么就提交内容(这个可以无视,在函数中return False就可以忽略这个回车了)
2.按下ctrl+回车键,文本框中换行,也就是另起一行(NG)帮忙上面第二条(也就是红色标记的)解决下吧,除了x=x + '\r\n'有没有其他的方法了?因为我发现用x=x + '\r\n'后光标还在当前行。我觉得只要不return false,最终文本框还是会接收这个换行的,可事实不是。觉得各位好像误认为我对按下ctrl后的操作动作是什么不了解,所以写了一堆event.ctrlKey的代码,郁闷。
enter 可以回车
shift + enter 可以回车
ctrl + enter 不可以回车
alt + enter 不可以回车好像是ie本来就这德性,看样子只有自己捕获“ctrl+enter”然后处理了,我原始的方法:
x.value = x.value + '\r\n'
应该是上面这样的代码吧,可是为什么文本框中的光标不自动跑到下面一行去啊?
你x.value = x.value + '\r\n' 这样子是对的~