How would I find if a textbox (or textarea) currently is in focus? I don\'t care to know which one it is, I just need to know if one is in focus (has the cursor in it). How
Extending the accepted answer by a check for editable HTMLDivElements:
if (document.activeElement.nodeName == 'TEXTAREA'
|| document.activeElement.nodeName == 'INPUT'
|| (document.activeElement.nodeName == 'DIV'
&& document.activeElement.isContentEditable)) {
// …
}
$('#target').focus(function() {
alert('Handler for .focus() called.');
});
Also Try:
alert($("*:focus").attr("id"));
http://jsfiddle.net/4KVvV/
$('#yourTextAreaID:focus');
would not work. :) But
$('#yourTextAreaID').focus(function(){
// do something
});
would excecute the //do something
code when the element receives focus.
Since you have found document.activeElement
, you can check its nodeName.
if (document.activeElement.nodeName == 'TEXTAREA' || document.activeElement.nodeName == 'INPUT') {
// ....
}
Something like that.
Ok, just figured it out. Here's what I did:
function checkFocus() {
if ($(document.activeElement).attr("type") == "text" || $(document.activeElement).attr("type") == "textarea") {
//Something's selected
return true;
}
}