is there a cross-browser solution to disable \'tab\' on a input type=\'text\' ?
Pressing \'tab\' moves you to the
a non jQuery implementation would be a bit like this -
HTML would be
<input type="text" id="myField1" onkeydown="return stopTab(event);" />
and JS something like below
function stopTab( e ) {
var evt = e || window.event
if ( evt.keyCode === 9 ) {
return false
}
}
document.querySelector('input').addEventListener('keydown', function (e) {
if (e.which == 9) {
e.preventDefault();
}
});
Depends on how cross-browser you are talking though, as the above only supports IE9 (and other modern browsers).
http://jsfiddle.net/ExplosionPIlls/YVUzz/
IE8- use attachEvent
instead of addEventListener
and e.keyCode
instead of e.which
, and there is no preventDefault
, but you can use return false
.
Yes,check if the key pressed was tab, and if so, returns false:
<form class='noTab'>
<input type="text" />
<input type="text" />
<select>
<option>a</option>
<option>b</option>
</select>
<textarea>
</textarea>
</form>
jQuery('.noTab').find('input,select,textarea').keydown(function (e) {
if (e.which === 9) {
return false;
}
});
jQuery will allow this work on legacy browsers.
http://jsfiddle.net/JxMhY/
On that fiddle it shows 2 forms, one with the class "noTab" and one without, as tab/shift+tab are useful for many forms, but not the one which has a special "tab" action.