弹出窗口以短时间间隔多次触发

Popup is triggered multiple times with short time interval

我想制作一个输入字段以动态地对无效输入做出反应,从而显示一个弹出窗口(带有 window.alert)以通知玩家输入无效。但是,在我关闭弹出窗口后,相同的弹出窗口将以非常短的时间间隔显示两次。在此之后可以更改输入。

我该如何解决?有没有办法确保弹出窗口在几秒钟内不再显示?

相关代码:

$(':input').bind('keypress keydown keyup change',function(){
  var weight = parseFloat(String($(':input[name='.concat(n,']')).val()).replace(',', '.'));

  if (weight > 100 || weight < 0){
      window.alert("Bitte eine Nummer zwischen 0 und 100 eingeben!");
  }

});

你绑定了 4 个事件来做同样的事情,所以你应该得到 4 个警报:

所有 4 个事件都会触发,因为您按下键,然后释放键,并且由于元素在您发出警报时失去焦点,因此也会触发 change-event。

  • keypress(已弃用)按下产生字符值的键时触发
  • keydown 按下某个键时触发。
  • keyup 释放按键时触发。
  • change 当用户提交值时触发。

您忘记了 input-事件要完成...

使用更改事件,仅在用户提交值时运行您的代码。