超时时间计数不检测输入字段

时间:2017-09-13 06:23:40

标签: javascript jquery timeout keypress

我在mouse click,keyup和keypress上写了重置超时的方法,但我刚刚意识到它没有检查输入字段,所以当我主动输入字段时它会超时。 这是我的代码:

var idleInterval = setInterval(timerIncrement, 10000); 
var idleTime = 0;
$(document).ready(function () {
  //Increment the idle time counter every minute.
  //Zero the idle timer on mouse movement.
  $(this).mousemove(function (e) {
    idleTime = 0;
  });
  $(this).keypress(function (e) {
    idleTime = 0;
  });
  $(this).keyup(function (e) {
    idleTime = 0;
  });
});

function timerIncrement() {
  idleTime = idleTime + 1;
  if (idleTime > 4) {
    window.location.replace('/timeout.aspx');
  }
}

2 个答案:

答案 0 :(得分:1)

您应该在show_picture_of_person.php?id=x函数中包含所有代码。

document.ready()

答案 1 :(得分:0)

您可以使用此jQuery函数来检测页面上的所有按键:

$(document).on("keypress", function (e) {
    idleTime = 0;
});

所以你的代码应该是这样的:

var idleInterval = setInterval(timerIncrement, 10000); 
var idleTime = 0;

function timerIncrement() {
    idleTime = idleTime + 1;
    if (idleTime > 4) {
        window.location.replace('/timeout.aspx');
    }
}

$(document).ready(function () {

    $(this).mousemove(function (e) {
        idleTime = 0;
    });
    $(document).on("keypress", function (e) {
        idleTime = 0;
    });

});