web-dev-qa-db-ja.com

jQueryのフォーム内のすべてのフィールドのフォーカスを強制的に失わせる方法

入力フィールドが変更(変更)されると、関数をトリガーして変数を設定します。唯一の問題は、変数が設定される前にフィールドが最初にフォーカスを失う必要があり、フィールドが変更されたかどうかを確認できることです。これは、ユーザーがタブをクリックしたときに行うことで、ユーザーは前のタブでフォームを送信するのを忘れています。強制的にすべての可能なフィールドのフォーカスを失うため、最初にonchangeイベントが発生しますか?

43

これを使用できます:

$(':focus').blur()

サイトにjQueryがない場合は、次のように置き換えることができます。

let el = document.querySelector( ':focus' );
if( el ) el.blur();
89

これにはjQueryは必要ありません。 vanillaJSもこれを行うことができます。

document.activeElement.blur();

注:通常、メソッドを呼び出す前にnull-nessをチェックしますが、 activeElement‹body›ノードがない場合にのみnullを返すため、この直接呼び出しはかなり安全です。

4
WoodrowShigeru

.blur()イベントをトリガーできます

$('SomeElement').blur(function () {
   // do whatever
});

$('SomeElement').blur();
4
frenchie