-1

目前我的 javascript 编写如下,但是,脚本存在一个问题,我正在尝试修复......当光标专注于 id 为“proxid”的输入类型文本时,它仍然会获取值打字。

我只希望它在输入中未选择光标时获取值。

$(document).keypress(function(event) {
    switch(event.which){
        //stuff
    }
}

如何检查光标是否聚焦在输入框上?

4

3 回答 3

3

您可以使用:focus选择器检查光标当前是否在输入上。

$('input').is(':focus');

所以在你的代码中,你可以这样做:

$(document).keypress(function(event) {
    if(!$('#myInput').is(':focus'))
    {
        //Run Code here when input is not focused.
    }   
});

演示:http: //jsfiddle.net/afw3L/

于 2013-10-21T15:58:50.830 回答
1

您可以检查以下tagName内容document.activeElement

if (document.activeElement.tagName.toLowerCase() === 'input') {
    // an input element has focus
}

或者:

if (document.querySelector('input:focus').length > 0) { // 输入元素有焦点 }

参考:

于 2013-10-21T15:58:59.257 回答
0

最好对焦点的改变做出反应:

标记

<input type="text" id="myEdit" />

脚本

   $('#myEdit').on('blur', function() {
      console.log(this.value);
    });

小提琴:http: //jsfiddle.net/Saran/cqjHx/

或者,包含所有输入:http: //jsfiddle.net/Saran/N86QG/

于 2013-10-21T16:08:56.943 回答