查找当前是否选中了文本框

如何找到当前焦点的文本框(或textarea)? 我不知道它是哪一个,我只需要知道一个是否在焦点(光标在其中)。 我如何用javascript和jquery做到这一点?

由于您已找到document.activeElement ,因此可以检查其nodeName。

 if (document.activeElement.nodeName == 'TEXTAREA' || document.activeElement.nodeName == 'INPUT') { // .... } 

这样的事情。

好吧,刚想通了。 这是我做的:

 function checkFocus() { if ($(document.activeElement).attr("type") == "text" || $(document.activeElement).attr("type") == "textarea") { //Something's selected return true; } } 
 $('#yourTextAreaID:focus'); 

不行。 :)但是

 $('#yourTextAreaID').focus(function(){ // do something }); 

当元素获得焦点时,会优先执行//do something代码。

通过检查可编辑的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.'); }); 

还试试:

 alert($("*:focus").attr("id")); 

http://jsfiddle.net/4KVvV/