Maintain focus on an input tag

后端 未结 1 664
眼角桃花
眼角桃花 2020-12-19 05:56

I\'m trying to keep focus on an input element with this code:


But it doesn\'t seem to work.

相关标签:
1条回答
  • 2020-12-19 06:53

    If we just call .focus() right on blur event, it will restore focus, but actually there will be no text cursor. To handle this we have to let element to lose focus and then return it in few milliseconds. We can use setTimeout() for this.

    $('#inp').on('blur',function () { 
        var blurEl = $(this); 
        setTimeout(function() {
            blurEl.focus()
        }, 10);
    });
    

    Here's working example. Be careful - you can't leave text field after you enter it =)

    EDIT I used jQuery, but it can be easily done without it.
    EDIT2 Here's pure JS version fiddle

    <input type="text" id="elemID" />
    
    <script type="text/javascript">
        document.getElementById('elemID').onblur = function (event) { 
            var blurEl = this; 
            setTimeout(function() {
                blurEl.focus()
            }, 10);
        };
    </script>
    
    0 讨论(0)
提交回复
热议问题