如何在jQuery中强制失去表单中所有字段的焦点

Jil*_*aar 44 javascript jquery lost-focus

当输入字段改变(onchange)时,我触发一个函数来设置一个变量.唯一的问题是该字段首先必须在设置变量之前失去焦点,并且我可以检查字段是否已更改,这是我在用户单击选项卡时要执行的操作,以便我可以检查是否用户忘记在上一个标签中提交表单.何力会失去所有可能领域的焦点,所以首先onchange可以举办活动?

Kar*_*non 91

你可以用这个:

$(':focus').blur()
Run Code Online (Sandbox Code Playgroud)

如果您的站点中没有jQuery,可以将其替换为:

let el = document.querySelector( ':focus' );
if( el ) el.blur();
Run Code Online (Sandbox Code Playgroud)

  • 或作为一个安全的单行:`document.querySelectorAll(':focus').forEach(el => el.blur());` (3认同)

Woo*_*eru 5

您不需要jQuery;vanillaJS也可以做到这一点。

document.activeElement.blur();

注意:通常,我会在调用方法之前检查null-ness,但activeElement只有在没有‹body›节点的情况下才会返回null ,因此此直接调用非常安全。