`
xixian
  • 浏览: 210602 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

js获取快捷键输入值

 
阅读更多
   
           var instr="";//保存ctrl/shift/alt键的按下记录
	    function keyDown(e,keyId) {
		   var isEnd=false;//判断是否按了字母或数字
	       var currKey=0,e=e||event;
	       var ctrl=e.ctrlKey,shift=e.shiftKey,alt=e.altKey;
		   currKey=e.keyCode||e.which||e.charCode;
		   var keyName="";//按下的键值
		   if(currKey==17) keyName="CTRL";
		   else if(currKey==16)keyName="SHIFT";
		   else if(currKey==18) keyName="ALT";
		   else if((64< currKey&&currKey<91)||(48< currKey&&currKey<57)){//字母或数字情况
		    keyName= String.fromCharCode(currKey)
		    isEnd=true;
		    } 
		  var focusId= document.activeElement.id;//获取当前焦点所在的控件ID
		  if(focusId==keyId&&keyName!=""){
		     var keyArray=instr.split("+");
		     var isExist=false;//判断ctrl/shift/alt键是否已经被记录
		      for(var i=0;i < keyArray.length;i++){
		       if(keyName==keyArray[i])isExist=true;
		      }
		    if((ctrl||shift||alt)&&!isExist){//当前按下键(ctrl/shift/alt键之一)未按下
		       if(!isEnd){//假如不是输入字母或数字 ,就保存当前按下键的值记录
		      if(instr!="")instr=instr+"+"+keyName;
		      else instr=keyName;
		       }
		       else{//否则设置将所有组合键的值保存输入控件
		       $("#"+keyId).val("");
		       $("#"+keyId).val(instr+"+"+keyName);
		       }
		    }
		   }
    }	
     function keyUp(e) {
     	   var currKey=0,e=e||event;
		   currKey=e.keyCode||e.which||e.charCode;
		   var ctrl=e.ctrlKey,shift=e.shiftKey,alt=e.altKey;
		   if(!ctrl) inStrCheck("CTRL");
		   if(!shift)inStrCheck("SHIFT");
		   if(!alt) inStrCheck("ALT");

     }
     
     /**
     *如果(ctrl/shift/alt键之一)松开,
     *遍历丢弃松开的键(ctrl/shift/alt键之一)
     *重修赋值给instr
     **/
	function inStrCheck(keyName){
	     var keyArray=instr.split("+"); 
	     instr="";
	     for(var i=0;i < keyArray.length;i++){
		   if(keyName!=keyArray[i])instr==""?instr=keyArray[i]:instr=instr+"+"+keyArray[i];
		 }
	}	
	      document.onkeydown = function(e){
	               keyDown(e,"requestKey");//需要获取值的输入控件ID
	               };
	       document.onkeyup = keyUp;
分享到:
评论

相关推荐

    js简单的设置快捷键,hotkeys捕获键盘键和组合键的输入-javascript

    Hotkeys HotKeys.js 是一个输入捕获库,具有一些非常特殊的功能,易于获取和使用,具有合理的占用空间 (~3kb) (gzipped: 1.73kb),并且没有依赖项。 它不应干扰任何 JavaScript 库或框架。 官方文档演示预览。 ╭...

    zTree封装辅助JS(弹出层,弹出层筛选,上下键选择)

    主要是传统下拉框的优化选择,分单选和多选两种类型,可以是弹出层形式,也可以...区段识别是输入多个值,选中多个项(以ztree中的id作为识别条件,全匹配识别) 以ztree为核心,依赖jquery,easyUI(弹出层选择所用)

    JS获取字符对应的ASCII码实例

    最近喜欢用浏览器控制台直接跑JS代码,将这个代码直接贴到浏览器控制台,即可调试(谷歌浏览器快捷键 ctrl+shift+j) function GetAsciiCode(){ var str = prompt&#40;"请输入几个字符",""&#41;;//接收字符串 var ...

    voxel-fullscreen:使用键盘快捷键切换全屏(voxel.js 插件)

    使用热键切换全屏(voxel.js 插件) 使用fullscreen键绑定,默认 F11。 点击此键将通过进入或退出全屏模式()。 已知问题:离开全屏可能会释放指针锁定(点击重新获取)。 选项 element : 全屏的 HTML 元素,默认...

    combi::keyboard:一个微小的键盘快捷键处理库

    :keyboard: 一个很小的键盘快捷键处理库。 特征 袖珍大小–库大小小于600字节(〜350字节已压缩!) 最小–传递callback函数=&gt;获取结果。 专门-仅在按下至少一个或多个且最多使用一个常规键的情况下处理键组合...

    sanity-plugin-markdown:已移至新组织,现在为只读。 Markity的Markdown输入组件和模式类型

    转到以获取新版本! 理智的插件降价 减价输入部件和架构类型 正在安装 在您的Sanity studio文件夹中,运行: sanity install markdown 特征 自动输入区域 预览模式 格式化键盘快捷键 基本用法 TL; DR:只需在模式中...

    PHP开发实战1200例源码

    实例172 不提交表单获取单选按钮的值 207 实例173 实现复选框中的全选、反选和不选 208 实例174 隐藏域提交用户的ID值 210 实例175 图像域替代提交按钮 211 实例176 跳转菜单实现页面跳转 213 实例177 上传图片预览 ...

    PHP 代码编辑器 CodeLobster PHP Edition 5.15.0 中文多语免费版.zip

    您还可以使用ContextHelp获取有关信息的快捷键。 ·代码折迭 ·对突出:突出成对标记和属性。 ·对选择,标记和属性选择命令:选择在当前块的内容。 ·工具提示:可查看光标所在变量的值和函数原型 ·按住CTRL键可...

    APEX Developer Addon-crx插件

    它具有以下功能:-针对SQL,PL / SQL,HTML / XML和Javascript的语法突出显示-键盘快捷键(F10 =保存,...)-使用搜索框的快速导航快捷键(在此处输入?以获得帮助)-到处都有许多小的改进立即获取。 它是免费的,...

    顶点Developer插件「APEX Developer Addon」-crx插件

    它具有以下功能:-SQL,PL / SQL,HTML / XML和Javascript的语法突出显示-键盘快捷键(F10 =保存,...)-使用搜索框的快速导航快捷键(在此处输入?以获得帮助)-到处都有许多小的改进立即获取。 它是免费的,甚至...

    Layx web开发框架-其他

    纯原生Javascript实现,不依赖任何第三方框架支持IE10+(含IE10)、Chrome、Firefox、Opera、Edge、Safari等主流浏览器支持多种窗口类型:文本窗口,页面窗口,窗口组,提示窗口,消息窗口,询问窗口,输入窗口,...

    UTIME「Utime」-crx插件

    在这里,您可以输入日期或时间戳,然后按Enter在提示对话框中获取转换后的值。 *更新了无法转换值时显示的错误文本*从扩展程序的弹出窗口v2.0.1中删除了一些不必要的javascript资产*从v1.x重新添加了功能,其中在...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例172 不提交表单获取单选按钮的值 207 实例173 实现复选框中的全选、反选和不选 208 实例174 隐藏域提交用户的ID值 210 实例175 图像域替代提交按钮 211 实例176 跳转菜单实现页面跳转 213 实例177 上传图片预览 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例172 不提交表单获取单选按钮的值 207 实例173 实现复选框中的全选、反选和不选 208 实例174 隐藏域提交用户的ID值 210 实例175 图像域替代提交按钮 211 实例176 跳转菜单实现页面跳转 213 实例177 上传图片预览 ...

    process-palette:用于运行参数化Shell命令的Atom软件包

    这使您可以在出现提示时提供输入。 您也可以简单地添加终端,而无需配置用于通用的命令。 强调: 使用工作空间中的值对命令进行参数化,例如文件路径,项目路径,所选文本等。 使用每个命令的可选快捷键将条目...

    asp.net专家疑难解答200问源码

    21.如何在页面中应用javascript脚本-示例1 21.如何在页面中应用javascript脚本-示例2 22.如何实现从服务器端向页面动态添加javascript脚本-示例1 22.如何实现从服务器端向页面动态添加javascript脚本-示例2 24....

    KODExplorer 芒果云-资源管理器

    - 极佳的操作体验:及其便捷的快捷键支持,让你拥有本地化的体验 - 中文等多语言支持:中文编码全面兼容,文件编辑自动适配。 - 超快的速度:全面采用Ajax+Json进行数据通信,毫秒级的响应速度; - 全平台兼容性:...

    AddAnyFile:Visual Studio扩展

    例如,通过在对话框中键入scripts / test.js ,将创建文件夹脚本(如果不存在),然后将文件test.js放入其中。 贡献 如果您想为这个项目做贡献,请查看。 要自己克隆和构建此项目,请确保安装用于Visual Studi

    atom-syntax-tools:用于原子编辑器的更轻松的语言语法规范工具

    使用此工具,您可以在coffeescript文件中定义语法并获取输入cson,并生成完整的语法cson。 利用javascript正则表达式的语法突出显示功能,将其用作Oniguruma正则表达式。 这样,您就不需要太多逃脱。 在作用域...

    fvtt-bcdice:FoundryVTT模块,用于向BCDice服务器查询掷骰子

    允许用户从可用系统列表中进行选择,输入命令,然后将该命令提交给api 包含结果的聊天消息0.2 添加了用于启动Roller的键盘快捷键(Ctrl + Shift + B) 启动Roller时,浏览器将专注于命令输入字段提交卷后,Roller...

Global site tag (gtag.js) - Google Analytics