作者:凹凸曼00威威_694 | 2023-09-02 09:19
如何使用JavaScript或jQuery检测哪个表单输入具有焦点?
在函数中,我希望能够确定哪个表单输入具有焦点.我希望能够在直接的JavaScript和/或jQuery中执行此操作.
1> Juan Mendes..:
document.activeElement
它已经在IE中得到了很长时间的支持,最新版本的FF和Chrome也支持它.如果没有焦点,则返回document.body
对象.
2> Paolo Bergan..:
我不确定这是否是最有效的方法,但您可以尝试:
var selectedInput = null;
$(function() {
$('input, textarea, select').focus(function() {
selectedInput = this;
}).blur(function(){
selectedInput = null;
});
});
对于大型DOM结构非常不合适,不支持动态添加元素,链接怎么样?感到惊讶的是这被选为正确的答案
大多数情况下,少于10个输入并且不动态添加它们?也许对于简单的表单,而不是复杂的Web应用程序.如果document.activeElement在所有A级浏览器中都可用,为什么你会使用更复杂,技术上更差的解决方案?此外,如果焦点转移到链接,这将给你一个误报.我只是警告OP.
@混沌.你是什么意思很难找到更好的解决方案?只需检查`document.activeElement`的值.看我的回答
@Juan Mendes:并非所有情况都必须是一个全面的解决方案.信不信由你,大多数时候你会有<10个输入,没有动态添加字段,这样就可以了.