`
lijingbo9512
  • 浏览: 2457 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

解决按左右箭头光标移动实现shift+tab、tab功能

阅读更多

/*
 * 此脚本专门处理按键光标移动处理
 * 结合jQuery的jquery.hotkeys.min.js一起使用
 * 解决在文本有内容的情况下光标可以在文字上移动,到达文本末尾是往后跳格,到达文本首位是往前跳格
 * $(".clsinput12").not(".css_readonly,:hidden")获取的是可输入的一些文本框的元素数组,包括 input,select,textarea

 *
 */
 
//IE中屏蔽后退建(Back Space)
document.onkeydown = function() //用户的按键事件
{    
    if(event.keyCode == 8)      //如果按下的是退格键
    {
        if(event.srcElement.tagName.toLowerCase() != "input"
           && event.srcElement.tagName.toLowerCase() != "textarea") //如果是在textarea内
            event.returnValue = false;                              //不执行任何操作
    }
}
//屏蔽掉IE自带的功能键
document.onkeydown=noway;           //绑定窗体加载事件
function  noway(){ 
    if(event.keyCode==116){         //通过键值判断是否是F5
        event.keyCode=0; 
        event.returnValue=false;    //不进行任何操作
    } 
}

//js获得光标所在的文本框(text/textarea)中的位置
function getPosition(obj){
 var result = 0;
 if(obj.selectionStart){ //IE以外
  result = obj.selectionStart
 }else{ //IE
  var rng;
  if(obj.tagName == "textarea"){ //TEXTAREA
  rng = event.srcElement.createTextRange();
  rng.moveToPoint(event.x,event.y);
 }else{ //Text
  rng = document.selection.createRange();
 }
  rng.moveStart("character",-event.srcElement.value.length);
  result = rng.text.length;
 }
 return result;
}


//计算字符串长度
String.prototype.codeLength=function(){
  var len=0;
  if(this==null||this.length==0)
   return 0;
  var str=this.replace(/(^\s*)|(\s*$)/g,"");//去掉空格
  for(i=0;i<str.length;i++)
         len++;
    return len;
}

//热键处理
 //屏蔽Backspace键

 $(document).bind('keydown', 'backspace',function (evt){
     if(evt.srcElement.tagName.toLowerCase()=="body"){
      return false;
     }
    });


  //向右箭头按键
 $(document).bind('keydown', 'right',function (evt){
  var currentElement=evt.target;//当前元素
  var curId=currentElement.id;//获取元素id
  var index=$(".clsinput12").not(".css_readonly,:hidden").index($("#"+curId)[0])+1;//获取后一个元素的index,此写法可参照jquery文档的index(object)


  var elmlen=$(".clsinput12").not(".css_readonly,:hidden").length;//去掉只读和隐藏的元素,获取页面上的元素个数
  
  if(index<elmlen){
   if(evt.srcElement.tagName.toLowerCase()=="input"){
    var len=evt.target.value.codeLength();
    var pos=getPosition(evt.target);
    if(pos==len){
     $(".clsinput12").not(".css_readonly,:hidden")[index].focus();
    }
   }else {
     $(".clsinput12").not(".css_readonly,:hidden")[index].focus();
     
   }
  }
  
 });


 //向左箭头按键
 $(document).bind('keydown', 'left',function (evt){
  var currentElement=evt.target;
  var curId=currentElement.id;
  var index=$(".clsinput12").not(".css_readonly,:hidden").index($("#"+curId)[0])-1;//获取前一个元素的index


  if(index>-1){
   if(evt.srcElement.tagName.toLowerCase()=="input"){
    var pos=getPosition(evt.target);
    if(pos==0){
     //debugger;
     $(".clsinput12").not(".css_readonly,:hidden")[index].focus();
    }
   }else {   //if(evt.srcElement.tagName.toLowerCase()=="select") readonly="readonly"
      $(".clsinput12").not(".css_readonly,:hidden")[index].focus();
   }
  }
  
 });

分享到:
评论

相关推荐

    IntelliJ IDEA12.1.4快捷键大全(按Ctrl/Shift/Alt/Ctrl+shift/Ctrl+Shift+Alt不同结合整理)

    15. `Ctrl+W`:选中光标所在的单词,连续按会有更多选择效果。 16. `Ctrl+方向左/右`:光标跳到上/下一个单词。 17. `Ctrl+方向上/下`:类似鼠标滚动,上下移动。 18. `Ctrl+Tab`:在编辑窗口间切换,加`Delete`关闭...

    Webstorm快捷键

    代码编辑中的多光标和选区功能,可以通过Alt+Click添加新的光标位置,而Shift+Ctrl+Alt+J则用于快速添加选区。 WebStorm还提供了强大的调试快捷键,如F8为跳过,F7为步入,Shift+F7为智能步入,Shift+F8为跳出,Alt...

    办公软件快捷键一览全懂.pdf

    - Ctrl+左右箭头键:按单词移动光标。 - Ctrl+上/下箭头键:移动到段落的开头/结尾。 - Ctrl+Home:移动到文档开头。 - Ctrl+End:移动到文档结尾。 - Alt+Ctrl+PageUp 或 Alt+Ctrl+PageDown:上/下翻页。 4. 选定...

    VS2005,VS2008快捷键大全

    Ctrl+F、Ctrl+Shift+F、F3和Shift+F3分别用于查找、在文件中查找、查找下一个和查找上一个,Ctrl+H用于替换,Ctrl+Shift+H在文件中替换,Alt+F12列出查找结果,Ctrl+Shift+V实现剪贴板循环,Ctrl+左右箭头键移动一个...

    常用计算机快捷键.pdf

    * Ctrl+Shift+Tab:在选项卡上向后移动 * Tab:在选项上向前移动 * Shift+Tab:在选项上向后移动 * Alt+加下划线的字母:执行与该字母匹配的命令(或选择选项) * Enter:对于许多选定命令代替单击鼠标 * 空格键:...

    win7快捷键大集合

    + Ctrl + Shift + Tab 在选项卡上向后移动 + Tab 在选项上向前移动 + Shift + Tab 在选项上向后移动 + Alt + 向上键 在 Windows 资源管理器中查看上一级文件夹 + Esc 取消当前任务 + Ctrl + Shift + Esc 打开...

    Sublime Text

    Ctrl+M 光标移动至括号内开始或结束的位置 Ctrl+Shift+M 选择括号内的内容(按住-继续选择父括号) Ctrl+/ 注释整行(如已选择内容,同“Ctrl+Shift+/”效果) Ctrl+Shift+/ 注释已选择内容 Ctrl+Z 撤销 Ctrl+Y 恢复...

    Sublime Text3快捷键大全

    * Ctrl+Shift+L:先选中多行,再按下快捷键,会在每行行尾插入光标,即可同时编辑这些行。 * Ctrl+Shift+M:选择括号内的内容(继续选择父括号)。 * Ctrl+M:光标移动至括号内结束或开始的位置。 编辑类 * Ctrl+J...

    Delphi IDE常用快速鍵

    Alt+Shift+向下箭头、Alt+Shift+向上箭头、Alt+Shift+End和Alt+Shift+Home键都可以用来进行列的选中。在需要对列数据进行操作时,这些快捷键可以帮助快速选中连续的文本区域。 Ctrl+Shift+T创建TODO条目,Ctrl+...

    键盘按键命令

    在选项卡上向后移动 ctrl+ shift+ tab 在选项上向前移动 tab 在选项卡上向前移动 ctrl+ tab 如果在“另存为”或“打开” 对话框中选择了某文件夹, 要打开上一级文件夹 backspace 在“另存为”或“打开...

    Word快捷键最完整版.pdf

    - `Tab` 或 `Shift+Tab`:在功能区选项间移动。 - 箭头键:在功能区项间上下左右移动。 - `Enter` 或 `空格键`:执行功能区命令或打开库。 通过熟练掌握这些快捷键,用户可以快速执行各种操作,提高Word文档处理...

    word、Excel快捷键大全.pdf

    Ctrl+Shift+F6, Ctrl+F10, Alt+Tab, Alt+Shift+Tab, Tab, Shift+Tab, Ctrl+Tab, Ctrl+Shift+Tab, PrintScreen, Alt+PrintScreen** - 这些快捷键涉及文档导航、关闭文档和窗口、切换任务以及屏幕捕捉等功能。...

    快捷键大全(20211008082709).pdf

    - `Arrow Keys`:在文本中移动光标,`Ctrl+Arrow Keys`:按单词移动。 3. **选择和编辑**: - `Shift+Arrow Keys`:选取文本。 - `Ctrl+Shift+Arrow Keys`:选取单词。 - `Shift+Home`/`Shift+End`:选取从当前...

    Word文档常用快捷键集合大全(一).pdf

    Ctrl+Shift+Alt+Ctrl+CShiftAlt+Ctrl+RAlt+Ctrl+TAlt+Ctrl+.Shift+Shift+Ctrl+Shift+Ctrl+Shift+Shift+EndShift+HomeShift+Shift+Ctrl+Shift+...TabShift+TabAlt+HomeAlt+EndAlt+PageUpAlt+PageDownEnterCtrl+Tab”...

    DW快捷键大全.pdf

    * 移动到前一个单元:Shift+Tab * 在当前行前插入一行:Control+M * 在表格末尾插入一行:在最后单元按 Tab * 删除当前行:Control+Shift+M * 插入一列:Control+Shift+A * 删除一列:Control+Shift+-( 连字号 ) * ...

    (完整版)Excel常用快捷键大全.doc

    * F2:将光标定位于单元格内,相当于双击的功能 * Alt+回车:在同一单元格中实现分行填写 * Ctrl+NUM+:插入单元格 格式 * Ctrl+1:设置单元格格式 * Ctrl+2:加粗 * Ctrl+3:斜体 * Ctrl+4:下划线 复制和粘贴 ...

    Excel快捷键大全_精心之作Excel快捷键大全_精心之作

    - 箭头键:上下左右移动光标。 - Home:移动到行首。 - F4 或 Ctrl+Y:重复上次操作。 - Ctrl+Shift+F3:创建行列标志的名称。 - Ctrl+D:向下填充。 - Ctrl+R:向右填充。 - Ctrl+F3:定义名称。 - Ctrl+K...

    vs常用快捷键

    * Ctrl+左右箭头键:一次可以移动一个单词 * Ctrl+上下箭头键:滚动代码屏幕,但不移动光标位置。 * Ctrl+Shift+L:删除当前行 * Ctrl+M,M:隐藏 这些快捷键可以大大提高开发效率,帮助开发者更快速地完成开发任务...

    win7快捷键大集合.pdf

    F2重命名选中项目,Ctrl+箭头键可快速移动光标,选择文本。F3搜索文件,Alt+Enter显示属性,Alt+F4关闭当前窗口。Ctrl+F4在多文档程序中关闭当前文档,Alt+Tab和Ctrl+Alt+Tab在不同窗口间切换,Ctrl+鼠标滚轮调整...

Global site tag (gtag.js) - Google Analytics