document.activeelement returns body

2019-01-23 14:17发布

问题:

<input id="text1" tabindex="1" onblur="invokeFunc()"/>
<input id="text2" tabindex="2" onblur="invokeFunc()"/>

function invokeFunc(){
   // ajax request 
   alert(document.activeElement); 
   // this returns body element in firefox, safari and chrome.
}

i am trying set focus onblur on text boxes with proper tabindex set.

when i invoke javascript function onblur and try to get document.activeelement then it always return me body element instead of active element where focus is.

回答1:

Between leaving the old element and entering the new element the active element is indeed the document/body itself.

Demo: http://jsfiddle.net/u3uNP/



回答2:

To Solve this problem replace document.activeElement with this.

JsFiddle: https://jsfiddle.net/PseudoNinja/8oq0c1by/



标签: html tabindex