Как отключить поведение по умолчанию когда жмешь ввод? - PullRequest
1 голос
/ 18 июня 2020

Привет, я хочу отключить поведение по умолчанию <input type="time"> при нажатии клавиши ввода. Как показано на изображении ниже, когда вы нажимаете клавишу ввода, в браузере отображается селектор времени, однако я не хочу, чтобы он показывал, что вместо этого при вводе я хочу отправить почтовый запрос. Atm мой onEnter () не работает. Спасибо.

enter image description here

  const onEnter = (e) => {
       if (e.key === "Enter") {
           e.preventDefault();
           console.log('e:', e.target.value);
       }
   };

1 Ответ

1 голос
/ 18 июня 2020

Ваша функция в порядке, если вы используете ее как обработчик keydown (а не keypress):

const onEnter = (e) => {
     if (e.key === "Enter") {
         e.preventDefault();
         console.log('e:', e.target.value);
     }
};
document.getElementById("the-input").addEventListener("keydown", onEnter);
<input type="time" id="the-input">

Протестировано и работает на Chrome и Firefox. Legacy Edge открывает раскрывающееся меню в фокусе, поэтому его поведение не зависит от нажатия клавиши Enter. (Более новый Edge на основе Chromium предположительно имеет поведение Chrome.)

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