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.