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 would I do this with javascript and jquery?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Since you have found document.activeElement
, you can check its nodeName.
if (document.activeElement.nodeName == 'TEXTAREA' || document.activeElement.nodeName == 'INPUT') {
// ....
}
Something like that.
回答2:
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;
}
}
回答3:
$('#yourTextAreaID:focus');
would not work. :) But
$('#yourTextAreaID').focus(function(){
// do something
});
would excecute the //do something
code when the element receives focus.
回答4:
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)) {
// …
}
回答5:
$('#target').focus(function() {
alert('Handler for .focus() called.');
});
Also Try:
alert($("*:focus").attr("id"));
http://jsfiddle.net/4KVvV/