JavaScript / jquery запущенные события нажатия кнопок, при наборе текстовых полей - PullRequest
1 голос
/ 12 января 2020

У меня веб-приложение, и у меня возникают проблемы с возможностью ввода текстовых полей без активации JavaScript событий, связанных с нажатиями клавиш. Я старался изо всех сил, чтобы найти способ отключить все эти события, сосредоточившись на текстовом поле, но безрезультатно. Есть ли способ «сфокусироваться» на текстовых полях, чтобы остановить запуск других событий? Спасибо.

1 Ответ

1 голос
/ 12 января 2020

Попробуйте приведенный ниже код. В focus удалены все прослушиватели событий, а в onblur добавлены все прослушиватели событий.

let input = document.getElementById('input');
  
  //Attach all the events
  input.addEventListener('focus', removeAllEventListner);
  input.addEventListener('keypress', myFunction);
  input.addEventListener('blur', addEvents);
  
  //On focus remove all the events
  function removeAllEventListner() {
    input.removeEventListener('keypress', myFunction);
    console.log('Event removed');
  }

 //Onblur add all event 
  function addEvents() {
    input.addEventListener( 'onkeypress', myFunction);
    console.log('Event attached');
  }

  function myFunction() {
    console.log('Keypress event');
  }
<input type="text" id="input"  value="" >

Надеюсь, что это решит проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...