2011-05-03 62 views
9

嘿家伙..如何锁定或禁用,并再次用JavaScript tab键用JavaScript锁定tab键?

+0

在你需要这样做的目的是什么? – 2011-05-03 15:10:26

+0

你是什么意思*锁定/禁用标签键*?你的意思是如何防止** TAB **键将焦点转移到下一个可调焦元素? – 2011-05-03 15:12:18

+1

下面的答案很好,但让我警告你,大多数用户不会喜欢你阻止他们使用他们的标签。在我的情况下,如果它不是一款游戏,我会尽快离开网站。 – 2011-05-03 15:22:25

回答

25
$(document).keydown(function(objEvent) { 
    if (objEvent.keyCode == 9) { //tab pressed 
     objEvent.preventDefault(); // stops its action 
    } 
}) 
+0

这是工作,再次打开?我可以使用任何选择器代替$(文档) – PsyGnosis 2011-05-03 15:21:54

+0

@诊断,简短的回答:*是* :-) – Neal 2011-05-03 15:22:24

+1

最后一个问题iPhone safari浏览器有下一个和上一个按钮..就像工程tab键..但这个代码不工作在iphone上的下一个按钮..我该怎么做? – PsyGnosis 2011-05-03 15:41:52

12

你可以这样说:

$(":input, a").attr("tabindex", "-1"); 

这将在各个环节与标签禁用越来越聚焦和表单元素。

希望这有助于

+0

嘿这是工作,但如何重新打开? – PsyGnosis 2011-05-03 15:52:14

+0

@psygnosis $(“:input,a”)。removeAttr(“tabindex”); – 2013-09-27 11:26:54

0

在尼尔的答案,我只补充:

if (objEvent.keyCode == 9) { //tab pressed 
    return; 
} 

因为当你输入完公积金按TAB键,它算作一个字符和变化CNPJ面具。

完整代码:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#cpfcnpj").keydown(function(objEvent){ 
     if (objEvent.keyCode == 9) { //tab pressed 
      return; 
     } 
     try { 
      $("#cpfcnpj").unmask(); 
     } catch (e) {} 

     var size= $("#cpfcnpj").val().length; 

     if(size < 11){ 
      $("#cpfcnpj").mask("999.999.999-99"); 
     } else { 
      $("#cpfcnpj").mask("99.999.999/9999-99"); 
     }     
    }); 
}); 
</script> 
+0

请用英文填写您的答案。Stack Overflow是一个只有英文的网站,所有问题和答案都必须使用英文。 – 2016-06-24 02:52:57

+0

已翻译为英文。 – Nighto 2017-03-24 18:21:38