检查是否有任何输入元素是焦点
我有一个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 ) { ... }