javascript - make on keyup 仅在输入内部触发一次

标签 javascript jquery

我有这个方法:

jQuery(function($) {
    var input = $('#search');
    input.on('keyup', function() {
        var key = event.keyCode || event.charCode;
        if( key == 8 || key == 46 ) {
            console.log('ajax request cancelled');
            recentRequest.abort();
        }
    });
});

但是现在每次我按下退格键它都会触发,我想让它只能在我的输入中触发一次。有人有想法吗?

谢谢

最佳答案

您可以创建一个 backspaceFlag 变量来确保只允许/触发退格代码一次:

jQuery(function($) {
  var backspaceFlag = true;
  var input = $('#search');
  input.on('keyup', function() {
    var key = event.keyCode || event.charCode;
    if ((key == 8 || key == 46) && backspaceFlag) {
      backspaceFlag = false;
      console.log('ajax request cancelled');
      recentRequest.abort();
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type='text' id='search' />

关于javascript - make on keyup 仅在输入内部触发一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45797813/

相关文章:

javascript - 给定一个 URL,我怎样才能找到 anchor HTML anchor 标签?

javascript - 在 typescript Angular 2中创建对象实例

javascript - 如何隐藏其他标签的内容,只显示选中标签的内容

JavaScript 无法在 'appendChild' 上执行 'Node' 参数 1 不是类型 'Node'

javascript - 使用 jQuery 左右移动图像

jquery - jquery mobile 中页面之间传递数据

javascript - jQuery 验证图像扩展大小写

jquery - 使用 JQuery 访问由 chrome 扩展注入(inject)的 iframe

javascript - 测试按下的按钮是否执行重定向到正确的页面?

javascript - 不包含使用jquery