Как отобразить только один маркер пароля в поле ввода?

#javascript #html #css #validation #input

Вопрос:

Вот простое поле ввода

 <input type="password">
 

Во время ввода данных каждый символ отображается в маркерах (# символов = # маркеров).

 // "password" = ********
 

Как я могу отобразить только ОДИН маркер, несмотря на ввод большего количества символов? С помощью чистого JS или/и CSS.

 // "password" = *
 

Комментарии:

1. Зачем ты это сделал? Как пользователь узнает, что он не вводил пароль жирными пальцами или что их нажатия клавиш даже регистрируются?

2. Я настоятельно призываю вас не делать этого. если «клиент» или ваш «босс» подталкивает вас к этому, отодвиньтесь, если возможно (укажите им на эти комментарии, например). Это плохая идея создавать ужасный пользовательский интерфейс. Это также сложно реализовать, и это, скорее всего, приведет к ошибкам, как в доступности, так и в других видах ошибок.

Ответ №1:

Вы можете просто добавить отступ в конце элемента ввода, чтобы скрыть все, кроме одного * :

 input {
  width: 50px;
  padding-right: 40px;
  box-sizing: border-box;
} 
 <input type="password" value="Correct horse battery staple" /> 

Почему ты это сделал, выше моего понимания, но это работает.

На самом деле, запуск этого сразу же показывает мне первую проблему с этой идеей: кнопка моего менеджера паролей в поле ввода достаточно велика, чтобы полностью покрыть этот первый символ.