检查是否有任何输入元素是焦点

我有一个jquery脚本,当按下键盘上的任何键时显示div。 我想在脚本中添加一个条件,如果页面上没有其他输入区域(textarea或texfields),则只运行脚本。 这样你就可以实际输入页面的其余部分而不显示div。

$(document).on('keydown', function (e) { if (!$('#test').is(':visible')) { //######## IF (every input is not active....) { if (65 <= e.keyCode && e.keyCode <= 90) { $(elem).fadeIn(); $('#textarea').val(''); $('#textarea').focus(); $('#textarea').val(temp); } } }); 

谢谢。 如果有必要,我可以在页面上为每个其他textarea提供相同的ID。

使用jQuery的焦点伪选择器

 if ( $('input:focus').length > 0 ) { return; } 

或者为您的代码示例

 if ( $('input:focus').length == 0) { ... } 

您可以像这样使用jQuery的.is()document.activeElement

 var targetInput = $('#myInput'); if(!targetInput.is(document.activeElement)) { alert('Typed while not focused on #myInput!'); } 

的jsfiddle

使用jQuery,您所要做的就是搜索当前焦点的输入或textarea元素。

 if ( $('input:focus, textarea:focus').length === 0 ) { // put some code here... } 

我想建议将此用于任何表单输入

 if ( $(':input:focus').length ) { ... }