【发布时间】:2011-06-02 07:04:24
【问题描述】:
如果文本框(或文本区域)当前处于焦点位置,我如何找到?我不在乎知道它是哪一个,我只需要知道一个是否在焦点上(其中有光标)。我将如何使用 javascript 和 jquery 做到这一点?
【问题讨论】:
标签: javascript jquery textbox focus
如果文本框(或文本区域)当前处于焦点位置,我如何找到?我不在乎知道它是哪一个,我只需要知道一个是否在焦点上(其中有光标)。我将如何使用 javascript 和 jquery 做到这一点?
【问题讨论】:
标签: javascript jquery textbox focus
既然你找到了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 代码。
【讨论】:
$('textarea:focus, input:text:focus')...
:focus 伪选择器,API 或快速测试也不认识...
通过检查可编辑的 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"));
【讨论】: