Javascript code to detect if focus is in a text field

thisiscrazy4 picture thisiscrazy4 · Apr 27, 2012 · Viewed 7.7k times · Source

I'm trying to make a safari extension that does something if the cursor focus isn't in a text field. However the following code to detect if the focus isn't in a text field does not work.

    if ($(document.activeElement).attr("type") != "text" 
       && $(document.activeElement).attr("type") != "textarea") {
          ..do something
    }

Answer

RobG picture RobG · Apr 27, 2012

Just keep it simple:

var el = document.activeElement;

if (el && (el.tagName.toLowerCase() == 'input' && el.type == 'text' ||
    el.tagName.toLowerCase() == 'textarea')) {
  // focused element is a text input or textarea
}