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

cen*_*ree 6 jquery focus input

我有一个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);
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

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

mrt*_*man 17

使用jQuery的焦点伪选择器

if ( $('input:focus').length > 0 ) {  return; }
Run Code Online (Sandbox Code Playgroud)

或者为您的代码示例

if ( $('input:focus').length == 0) { ... }
Run Code Online (Sandbox Code Playgroud)


Aus*_*rst 6

你可以使用jQuery .is(),document.activeElement就像这样.

var targetInput = $('#myInput');

if(!targetInput.is(document.activeElement)) {
    alert('Typed while not focused on #myInput!');
}
Run Code Online (Sandbox Code Playgroud)

的jsfiddle