使用JavaScript密钥代码9

时间:2015-05-31 18:07:33

标签: jquery

我正在尝试阻止用户使用Tab键在表单上的输入框中使用以下代码进行选项卡

$(document).ready(function(){
    $(":input").on("keydown", noTab);
});

function noTab(evt){
    $(this).keypress(function(e){
        if(e.keyCode == 9)
            e.preventDefault();
    })
}

但它无法正常工作,因为我仍然可以使用Tab键来标记我的输入字段。我有一个类似的功能来限制用户使用空格键,这确实有效。

$(document).ready(function(){
    $(":input").on("keydown", noSpace);
});

function noSpace(evt){
    // prevent user from entering a space
    $(this).keypress(function(e){
        if(e.keyCode == 32)
            e.preventDefault();
    });
}

我哪里出错了?

编辑:我正在使用UIKit作为前端HTML

2 个答案:

答案 0 :(得分:1)

您可以将<input>设置为-1,以防止标记到<input type="text" tabindex="-1"> 字段:

tabIndex

如果在页面加载后必须使用JavaScript / jQuery更改$(':input').prop('tabIndex', -1);属性:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="text">
<input type="text">
<input type="text">
public enum Suit { Clubs, Diamonds, Hearts, Spades }

public enum FaceValue {
    Two, Three, Four, Five, Six, Seven, Eight, Nine,
    Ten, Jack, Queen, King, Ace
}

public enum Color {
    Red, Black
}



public class Card{
    private FaceValue faceValue;
    private Suit suit;
    private Color color;


    //construct a blank card
    public Card() { }


    // constuct a defined card
    public Card(FaceValue FV, Suit S, Color C) {
        faceValue = FV;
        suit = S;
        color = C;
    }

答案 1 :(得分:0)

我在按Tab键时使用jQuery取消了keydown事件。它在Chrome中对我很好。希望这有帮助!

$("input").keydown(function(e){
    if ((e.which || e.keyCode || e.charCode) == 9) {
        e.preventDefault();
    }
});

DEMO