Question

for example I've 3 elements in my HTML code for text input.

<input type="text" name="txt1" />
<input type="text" name="txt2" />
<input type="text" name="txt3" />

At first load, I set by js to focus in txt1. My question is, How I can manipulate keyascii when I pressing tab from txt1 to txt3 ?

The fact, I've added some js code with jquery to do that, but doesn't work! It's always focused to txt2. This is my js code:

$('input[name="txt1"]').keyup(function(e){
        if((e.keyWhich || e.keyCode) == 9){
            $('input[name="txt3"]').focus();
        }
    });
Was it helpful?

Solution

Listen for keydown and use e.preventDefault() to prevent the default behaviour. The default behaviour for pressing tab is executed before the keyup event is being fired. That's why you have to use keydown instead.

$('input[name="txt1"]').keydown(function(e){
    if((e.keyWhich || e.keyCode) == 9){            
        e.preventDefault();
        $('input[name="txt3"]').focus();
    }
});

See this Fiddle

OTHER TIPS

You should listen for keydown instead and be using e.preventDefault()

Example:

$('input[name="txt1"]').keydown(function(e){
    if((e.keyWhich || e.keyCode) == 9) {
        e.preventDefault();
        $('input[name="txt3"]').focus();
    }
});

See on JSFiddle

Documentation of preventDefault

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top