asp.net textbox javascript实现enter与ctrl+enter互换 文本框发送消息与换行(类似于QQ)_asp.net教程-查字典教程网
asp.net textbox javascript实现enter与ctrl+enter互换 文本框发送消息与换行(类似于QQ)
asp.net textbox javascript实现enter与ctrl+enter互换 文本框发送消息与换行(类似于QQ)
发布时间:2016-12-29 来源:查字典编辑
摘要:1、也许讲解有点初级,希望高手不要“喷”我,因为我知道并不是每一个人都是高手,我也怕高手们说我装13;2、如有什么不对的地方,还希望大家指出...

1、也许讲解有点初级,希望高手不要“喷”我,因为我知道并不是每一个人都是高手,我也怕高手们说我装13;

2、如有什么不对的地方,还希望大家指出,一定虚心学习,如果有更好的办法请告诉我一声哦;

3、本文属于作者原创,尊重他人劳动成果,转载请注明作者,谢谢。

下面开讲:

如题,这个功能也困扰了我一两天事件了,我也上网找了很多资料,但是网上大部分的说法都差不多,问题始终还是没解决,于是乎我开始找是问题的根源,我开始用的是文本框的onkeydown事件,分别写了两个js函数,如下:

复制代码 代码如下:

//enter发送

function IsEnter(evt)

{

if(window.event.keyCode ==13)

{

send();

return false;

}

}

//ctrl+enter发送

function IsEnterAndCtrl()

{

if(window.event.keyCode ==13 && window.event.ctrlKey)

{

send();

return false;

}

}

然后我就用文本框的onkeydown事件来调用这两个函数,可以一直效果不出来,我就调试,发现event永远都是undefined,我无语了,然后我就换方法了,我把onkeydown函数里面加了一个event参数,在IsEnter(evt)里面也定义了一下var obj = window.event ? evt.keyCode : evt.which;//window.event是针对IE,evt.keyCode是针对FF,这样这个问题就解决了,就不会出现undefined错误了。

接下来问题又来了,我发现onkeydown事件只要你按键盘上的任意键就会触发这个事件,那么就无法实现ctrl和enter同时按了,又是一个纠结的问题啊,还有我们有onkeydown事件就有onkeyup事件,接下来我就把onkeydown事件换成了onkeyup事件了,这样问题就解决了。

好了,问题是越解决越少了,下面要做到是如何做到enter与ctrl+enter切换实现是换行还是发送消息?为了兼容性,我又定义了一个变量 var e = evt || window.event;我就是通过obj与e来实现换行与发送切换的,详细js代码如下:

复制代码 代码如下:

//enter or ctrl+enter发送

function IsEnter(evt)

{

var obj = window.event ? evt.keyCode : evt.which;

var e = evt || window.event;

var type = document.getElementById("sendtype");

var txt = document.getElementById("txtcontent");

if(type.innerHTML=="[Enter发送消息]")

{

if(obj ==13 && !(e.ctrlKey))

{

send();

e.returnValue = false;

txt.value="";

return false;

}

if(e.ctrlKey && e.keyCode==13)

{

txt.value +="n";

}

}

else

{

if(e.ctrlKey && e.keyCode==13)

{

send();

return false;

}

}

}

注意:以上代码我都已经在IE6、IE8、FF里测试过,绝对有用,由于按enter发送消息的时候会与换行冲突,所以我用e.returnValue = false;txt.value="";不知道有没有更好的方法?

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新asp.net教程学习
    热门asp.net教程学习
    编程开发子分类