`
xixian
  • 浏览: 215295 次
  • 性别: 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;
分享到:
评论

相关推荐

    JavaScript+快捷键设置

    根据提供的代码示例与描述,“JavaScript+快捷键设置”主要介绍了如何通过JavaScript来监听并处理用户输入的特定快捷键。 #### 二、关键技术点解析 ##### 1. `keydown` 事件处理函数 ```javascript function ...

    添加快捷键组合的javascript类库 - keyboard.js 编辑

    `keyboard.js` 是一个JavaScript库,它允许开发者轻松地为Web应用添加自定义的键盘快捷键组合。这个库的核心功能是监听用户输入的键盘事件,并根据预设的组合键进行相应的操作,从而提升用户交互体验,尤其是对于...

    js keycode快捷键大全 并附有简单使用说明

    在本文中,我们将详细介绍JavaScript中与键盘事件相关的keycode值及其使用方法,为了方便大家在实际开发中快速查找和使用。在JavaScript中,keycode值是对应于键盘上各个按键的数字标识,当我们使用键盘事件监听函数...

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

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

    idea 8.0 常用快捷键

    ### IntelliJ IDEA 8.0 常用快捷键详解 #### 1. **Ctrl+Space** 此快捷键用于触发基本代码完成建议。当你在编写代码时输入字母或符号后按下此...对于其他更多快捷键的使用,可以参考官方文档或社区论坛获取更多信息。

    输入数量和价格自动计算输出金额的js代码

    标签"js"、"js代码"、"输入"、"输出"表明了这段代码的核心技术是JavaScript,并且它涉及到输入和输出两个操作。在Web开发中,"输入"往往指的是通过HTML表单元素让用户填写信息,而"输出"则是指在页面上显示信息,...

    Qt QTextEdit 实现快捷键注释功能

    QTextEdit继承自QAbstractScrollArea,它可以接收用户输入并显示文本。在C++中,我们可以通过以下方式创建一个QTextEdit对象: ```cpp QTextEdit *textEdit = new QTextEdit(parent); ``` 接下来,我们将实现...

    纯js操作div移动、伸缩,支持快捷键

    在JavaScript中,我们可以监听键盘事件,比如`keydown`,来响应用户的快捷键输入。每个按键都有对应的键码,例如`A`键的键码是65。当检测到特定键码时,执行相应的操作: ```javascript document.addEventListener...

    javascript onkeydown实现键盘快捷键控制页面.docx

    ### JavaScript onkeydown 实现键盘快捷键控制页面 #### 核心知识点概述 本文将详细介绍如何使用 JavaScript 的 `onkeydown` 事件来实现键盘快捷键的功能,以达到对页面进行控制的目的。通过这种方式,用户可以...

    sublime快捷键.txt

    ### Sublime Text 快捷键与 Emmet 使用技巧 Sublime Text 是一款非常受欢迎的代码编辑器,以其轻量级、高效以及丰富的插件支持而著称。在开发过程中熟练运用快捷键能够极大提高工作效率。下面我们将根据提供的文档...

    键盘键值表.详细介绍键盘中每个按键对应的JS值

    在探讨键盘键值与JavaScript(JS)中的对应关系时,我们深入到计算机输入设备与编程语言之间的一个关键接口。键盘键值,或者说按键代码,是操作系统或编程环境用来识别特定按键按下或释放的一种数字标识。在...

    Eclipse的JavaScript插件 JSEditor

    5. **调试工具**:除了编辑功能,JSEditor还集成了JavaScript调试器,允许开发者设置断点、单步执行、查看变量值等,方便地定位和修复程序中的错误。 6. **集成开发环境**:作为Eclipse的一部分,JSEditor与Eclipse...

    js 获取键盘值用法(兼容IE及Firefox)

    在探讨JavaScript编程中获取键盘按键值的用法时,首先需要了解这一操作在不同浏览器中的兼容性问题。由于文档的标题明确指出要兼容IE和Firefox浏览器,我们可以推断出这涉及到的是一些历史上的问题,因为现代浏览器...

    适用于Vue的可编辑的表格组件支持多种快捷键操作模拟Excel的操作体验

    该组件名为 "vue-willtable",可以从压缩包 "vue-willtable-master" 中获取源代码。 在vue-willtable组件中,我们能够看到以下关键知识点: 1. **组件化开发**:Vue.js的核心之一就是组件化,vue-willtable将整个...

    JS实现页面查找Ctrl+F

    我们可以获取到输入框的值,然后遍历所有可选文本节点(`Node.TEXT_NODE`),使用正则表达式检查每个节点的文本内容是否包含关键字。 ```javascript function highlightMatches keyword) { const regex = new ...

    Eclipse 常用快捷键 jQuery Event

    转向JavaScript库jQuery,它是Web开发中广泛使用的库,简化DOM操作和事件处理。在jQuery中,事件是用户与页面交互的关键部分。以下是一些重要的jQuery事件: 1. **基本元素事件**: - `click()`:点击事件,当元素...

    web页面如何用js禁止拷屏键

    键盘事件主要有`keydown`、`keyup`和`keypress`,其中`keydown`是用户按下键盘按键时触发,`keyup`是用户释放键盘按键时触发,而`keypress`通常用于处理字符输入。 要阻止拷屏键,我们主要关注`keydown`事件,因为...

    KeyCode 程序设计时方便快捷键的设置,适用新手

    - 在JavaScript中,`event.keyCode`属性用于获取键盘事件中的键码。 - 在C#中,`Keys`枚举类型包含了所有键盘键的`KeyCode`。 - 其他编程语言如Python或C++虽然没有内置的`KeyCode`概念,但可以通过系统API或库来...

    JS设置自定义快捷键并实现图片上下左右移动

    在JavaScript中,设置自定义快捷键并实现图片上下左右移动是一项常见的交互功能,尤其是在网页游戏或图像编辑应用中。这个功能允许用户通过键盘上的特定按键或自定义的按键组合来控制图片的位置。以下是对实现这一...

Global site tag (gtag.js) - Google Analytics