WedX - журнал о программировании и компьютерных науках

переключение фокуса с кнопки на текстовое поле с помощью клавиши ввода, к которой привязано событие

$('#b').on('click', function() {
  $('#in2').focus();
  //setTimeout(function(){ $('#in2').focus(); },500); 
});
$('#in2').on('keyup', function(event) {
  console.log(event.which);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="b">focus</button>
<input type="text" id="in1" />
<input type="text" id="in2" />

У меня есть функция нажатия клавиши, привязанная к кнопке, где я переключаю фокус на текстовое поле #in2 в приведенном выше примере.

И у меня также есть событие нажатия клавиши, связанное с текстовым полем #in2.

Проблема: когда я использую клавишу ввода на кнопке, вызывается событие, связанное с текстовым полем (#in2).

Может ли кто-нибудь предложить мне какое-то решение, кроме setTimeout?

28.11.2016

  • Пожалуйста, старайтесь использовать полные предложения с правильной грамматикой (насколько это возможно). Это помогает людям понять вашу проблему. 28.11.2016
  • Я не вижу функции клавиши вверх, привязанной к кнопке. Функция нажатия клавиши привязана к текстовому полю 2. В вашем коде вообще нет функции нажатия клавиши. Нажатие кнопки переместит текстовое поле 2 в фокус. 28.11.2016

Ответы:


1

Если я правильно понимаю вашу проблему, и вы не хотите, чтобы функция нажатия клавиши на #in2 вызывалась при нажатии Enter, просто проверьте, является ли нажатая клавиша вводом, и выполните ее, только если это не так?

$('#in2').on('keyup', function(event) {
  if(event.which != 13){
    console.log(event.which);
  }
});

В качестве альтернативы вы можете использовать onchange, чтобы функция вызывалась при изменении содержимого элемента (это также будет работать, например, с копированием и вставкой)

20.12.2019
Новые материалы

Как создать диаграмму градиентной кисти с помощью D3.js
Резюме: Из этого туториала Вы узнаете, как добавить градиентную кисть к диаграмме с областями в D3.js. Мы добавим градиент к значениям SVG и применим градиент в качестве заливки к диаграмме с..

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..


Для любых предложений по сайту: [email protected]