Поле ввода получает фокус после нажатия кнопки в Safari, но не в Chrome - PullRequest
0 голосов
/ 23 апреля 2019

Я натолкнулся на эту странную разницу в поведении между Chrome и Safari.Если есть метка с вводом и кнопка внутри, нажатие на кнопку сделает фокус ввода в Safari, а в Chrome - нет.

Я понял, что добавление e.preventDefault() к обработчику нажатия кнопки делаетSafari ведет себя так же, как Chrome.

Вот минимальный пример кода:

<label>
  <input />
  <button>add</button>
</label>

Это ошибка в Chrome / Safari или какая-то документированная «функция»?Как «правильно» вести себя html?

1 Ответ

1 голос
/ 23 апреля 2019

Не знаю, почему ваша кнопка находится внутри ярлыка.Input и button оба являются активными (над которыми можно выполнить некоторые действия) элементами.По умолчанию активные элементы получают фокус в браузере.Итак, вы должны держать оба элемента отдельно.метки могут быть обернуты или не могут быть обернуты входными данными, см. ". Лучше обернуть тег метки вокруг элемента формы или использовать атрибут" for "в HTML? для получения подробной информации.

<body>

  <label>
  <input />
</label>
  <button>add</button>
</body>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...