Как обеспечить, чтобы маскирование значения происходило немедленно, когда тип ввода = пароль, без задержки на телефоне?

Я работаю над проектом, в котором у меня есть 5 полей ввода типа пароля, и после ввода каждого ввода элемент управления переходит в следующее поле.

Но только после ввода 3 или 4 входов предыдущие цифры маскируются. Есть задержка около 3-4 секунд, только после которой клавиша маскируется.

Первоначально я думал, что это может быть из-за функций keydown / keyup, связанных с полями ввода, но задержка маскирования происходит даже после того, как я удалил все ключевые события.

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

<div class = "pin-div" id = "form-group-id">
  <input name = "pin" class = "pin-inp" tabindex = "0" type = "password" maxlength = "1" pattern = "[0-9]*" inputmode = "numeric" autocomplete = "off" id = "pin-a">
  <input name = "pin" class = "pin-inp" tabindex = "0" type = "password" maxlength = "1" pattern = "[0-9]*" inputmode = "numeric" autocomplete = "off" disabled = "disabled" id = "pin-b">
  <input name = "pin" class = "pin-inp" tabindex = "0" type = "password" maxlength = "1" pattern = "[0-9]*" inputmode = "numeric" autocomplete = "off" disabled = "disabled" id = "pin-c">
  <input name = "pin" class = "pin-inp" tabindex = "0" type = "password" maxlength = "1" pattern = "[0-9]*" inputmode = "numeric" autocomplete = "off" disabled = "disabled" id = "pin-d">
  <input name = "pin" class = "pin-inp" tabindex = "0" type = "password" maxlength = "1" pattern = "[0-9]*" inputmode = "numeric" autocomplete = "off" disabled = "disabled" id = "pin-e">
  <input name = "pin" class = "pin-inp" tabindex = "0" type = "password" maxlength = "1" pattern = "[0-9]*" inputmode = "numeric" autocomplete = "off" disabled = "disabled" id = "pin-f">
</div>

Такая же задержка при маскировании цифр происходит даже после того, как я использовал input type = "tel"

Как лучше всего гарантировать отсутствие задержки при маскировании входных данных?

Разве это не поведение по умолчанию?

ksav 04.12.2018 09:38

Почему этого не происходит на настольном устройстве? А есть способ сразу замаскировать на телефоне?

Supreeth 04.12.2018 09:39
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
148
2

Ответы 2

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

См. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/password

Specifics of how the entry process works may vary from browser to browser; mobile devices, for example, often display the typed character for a moment before obscuring it, to allow the user to be sure they pressed the key they meant to press; this is helpful given the small size of keys and the ease with which the wrong one can be pressed, especially on virtual keyboards.

Why isn't it occurring on a desktop device?

Потому что труднее набирать текст на телефоне, когда вы закрываете пальцами крошечную экранную клавиатуру, которая пытается максимально точно определить, где ваши мясные кусочки, скорее всего, коснутся экрана. Вы в значительной степени необходимость визуальное подтверждение, чтобы убедиться, что вы не ошиблись при вводе этого ключа. По этим причинам это поведение телефона по умолчанию.

При вводе текста на большой физической клавиатуре на настольном устройстве этих проблем нет, и визуальная обратная связь не так необходима. Также намного проще закрыть крошечный экран телефона, просто отвернувшись на секунду, чем сделать то же самое на настольном устройстве.

Другие вопросы по теме