HTML5 input required, scroll to input with fixed navbar on submit

前端 未结 9 2141
感情败类
感情败类 2020-12-08 09:35

When trying to submit a form with missing required fields, my browser (Chrome), displays a message mentionning there is a field missing, and if it\'s out of my screen, it sc

9条回答
  •  被撕碎了的回忆
    2020-12-08 09:55

    The only way I found is adding an 'override' to the invalid handler. To implement this for every input in your form you can do something like this.

    var elements = document.querySelectorAll('input,select,textarea');
    var invalidListener = function(){ this.scrollIntoView(false); };
    
    for(var i = elements.length; i--;)
        elements[i].addEventListener('invalid', invalidListener);
    

    This requires HTML5 and this is tested on IE11, Chrome and Firefox.
    Credits to @HenryW for finding that scrollIntoView works like expected.

    Note that the false parameter for scrollIntoView aligns the input with the bottom, so if you have a large form it may be aligned with the bottom of the page.

    jsfiddle

提交回复
热议问题