このコードを使用して、入力要素に焦点を合わせようとしています:
<input onblur="this.focus()" />
しかし、うまくいかないようです。
このコードを使用して、入力要素に焦点を合わせようとしています:
<input onblur="this.focus()" />
しかし、うまくいかないようです。
イベントで単に呼び出すと、フォーカスが復元さ.focus()
れますblur
が、実際にはテキスト カーソルはありません。これを処理するには、要素がフォーカスを失い、数ミリ秒でそれを返す必要があります。これに使用できますsetTimeout()
。
$('#inp').on('blur',function () {
var blurEl = $(this);
setTimeout(function() {
blurEl.focus()
}, 10);
});
これが実際の例です。注意してください - 入力した後にテキストフィールドを離れることはできません =)
編集jQueryを使用しましたが、それがなくても簡単に実行できます。
EDIT2これが純粋なJSバージョンのフィドルです
<input type="text" id="elemID" />
<script type="text/javascript">
document.getElementById('elemID').onblur = function (event) {
var blurEl = this;
setTimeout(function() {
blurEl.focus()
}, 10);
};
</script>