我有一个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。
答案 0 :(得分:17)
使用jQuery focus伪选择器
if ( $('input:focus').length > 0 ) { return; }
或者代码示例
if ( $('input:focus').length == 0) { ... }
答案 1 :(得分:5)
你可以像这样使用jQuery的.is()
和document.activeElement
。
var targetInput = $('#myInput');
if(!targetInput.is(document.activeElement)) {
alert('Typed while not focused on #myInput!');
}
<强> JSFiddle 强>
答案 2 :(得分:3)
使用jQuery,您所要做的就是搜索当前焦点的输入或textarea元素。
if ( $('input:focus, textarea:focus').length === 0 ) {
// put some code here...
}
答案 3 :(得分:1)
我建议将其用于任何表单输入
if ( $(':input:focus').length ) { ... }