is there a way to disable 'tab' on a input type='text'?

前端 未结 3 763
南旧
南旧 2021-02-20 12:38

is there a cross-browser solution to disable \'tab\' on a input type=\'text\' ?


Pressing \'tab\' moves you to the

相关标签:
3条回答
  • 2021-02-20 12:56

    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
        }
    }
    
    0 讨论(0)
  • 2021-02-20 13:01
    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.

    0 讨论(0)
  • 2021-02-20 13:09

    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.

    0 讨论(0)
提交回复
热议问题