键盘上的make只在输入内部触发一次

时间:2017-08-21 13:00:41

标签: 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();
        }
    });
});

但是现在每次我按Backspace都会触发它,我想这样做它只能在输入内部触发一次。有人有想法吗?

由于

1 个答案:

答案 0 :(得分:2)

您可以创建一个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' />
&#13;
&#13;
&#13;