• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    asp.net textbox javascript实现enter与ctrl+enter互换 文本框发送消息与换行(类似于QQ)
    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="";不知道有没有更好的方法?
    您可能感兴趣的文章:
    • 在uiview 的tableView中点击cell进入跳转到另一个界面的实现方法
    • 总结IOS界面间跳转的几种方法
    • Activit跳转动画之界面上某个位置并裂开上下拉伸动画跳转
    • IOS应用内跳转系统设置相关界面的方法
    • IOS程序开发之跳转短信发送界面实现发送短信功能
    • Android编程使用Fragment界面向下跳转并一级级返回的实现方法
    • php+js iframe实现上传头像界面无跳转
    • JS 退出系统并跳转到登录界面的实现代码
    • Android中应用界面主题Theme使用方法和页面定时跳转应用
    • js实现界面向原生界面发消息并跳转功能
    上一篇:Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)
    下一篇:asp.net利用存储过程和div+css实现分页(类似于博客园首页分页)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    asp.net textbox javascript实现enter与ctrl+enter互换 文本框发送消息与换行(类似于QQ) asp.net,textbox,javascript,实现,