Javascript 在web输入之间更改焦点

Javascript 在web输入之间更改焦点,javascript,jquery,focusout,jquery-focusout,Javascript,Jquery,Focusout,Jquery Focusout,在JavaScript/jQuery web上下文中,具有: 启用的两个表单文本输入字段A和B 如果输入字段都没有焦点,则应禁用这些字段 也就是说,通过jQuery的focusout函数来检查A和B何时都失去焦点工作正常,但当A将焦点丢失给B(选项卡或通过选择B)时,我无法检查B是否获得了焦点,因为A在焦点更改完成之前的focusout 在输入字段之间切换时,如何通过focusout或等效项检查a和B是否都失去焦点 例如: 当两个输入字段都失去焦点时禁用输入字段,但在它们之间切换时也会禁用输

在JavaScript/jQuery web上下文中,具有:

  • 启用的两个表单文本输入字段A和B
  • 如果输入字段都没有焦点,则应禁用这些字段
也就是说,通过jQuery的focusout函数来检查A和B何时都失去焦点工作正常,但当A将焦点丢失给B(选项卡或通过选择B)时,我无法检查B是否获得了焦点,因为A在焦点更改完成之前的focusout

在输入字段之间切换时,如何通过focusout或等效项检查a和B是否都失去焦点

例如:

当两个输入字段都失去焦点时禁用输入字段,但在它们之间切换时也会禁用输入字段,这不是目的

$('input').focusout(function() {
    if ($(':focus').length === 0) { // does not count the other input yet
        $("input").prop('disabled', true);
    }
});

您可以使用window.setTimeout()这样做:

$(document).ready(function() {
  $('input').focusout(function() {
    window.setTimeout(function() {
        if ($(':focus').length === 0) {
            $("input").prop('disabled', true);
        }
    }, 5);
  });    
});
您可以使用来检查A是否对B失去焦点

MouseeEvent.relatedTarget只读属性是辅助属性 事件的目标(如果有)


向我们展示您目前拥有的一些代码如果两个
字段都被禁用,您如何
将注意力集中在其中一个
输入
字段上;或者我忽略了一些要求?其中一个要求加载了AutoFocus。您无法将焦点放在禁用的字段上,因此该元素上没有onFocus事件的意思……默认情况下输入字段未禁用。但这取决于竞争条件。@kaarel是的,我知道。但我认为这是一个黑客,因为我不知道是否一切准备好后5毫秒。无论如何,这可能是我的结局。不客气!不幸的是,Firefox(Gecko)中似乎存在一个bug: