Переключение видимости пароля

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

это мой код:

togglePasswordVisibility() {
    document.querySelector("#input2").setAttribute("type", "password")
    
    document.querySelector("#passwordIcon").setAttribute("name", "eye-off")
    
    if (document.querySelector('#passwordIcon').getAttribute('name') == 'eye-off') {
      
      document.querySelector('#passwordIcon').setAttribute("name", "eye")
    }

проблема в том, что это работает только один раз, а я хочу, чтобы это работало несколько раз. Кто-нибудь может мне помочь?

Это не похоже на угловой код. Пожалуйста, добавьте более конкретные теги, такие как javascript.

Yousaf Raza 02.06.2024 06:06
stackoverflow.com/help/how-to-ask
StackoverBlows 03.06.2024 15:43
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
2
84
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Ваш код в основном гласит:

  • Установите тип password
  • Если тип password, установите его на text.

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

togglePasswordVisibility() {    
  if (document.querySelector('#passwordIcon').getAttribute('name') == 'eye-off') {
    document.querySelector("#input2").setAttribute("type", "text")
    document.querySelector('#passwordIcon').setAttribute("name", "eye-off");
  } else {
    document.querySelector("#input2").setAttribute("type", "password");
    document.querySelector("#passwordIcon").setAttribute("name", "eye");
  }
}

попробовал ваш код, и он сработал, но наоборот, поэтому я изменил первый оператор на if (document.querySelector("#passwordIcon").getAttribute("name"‌​) == "eye"), а третий оператор на document.querySelector("#passwordIcon").setAttribute("name", "eye-off")" , и все работает отлично!!! Спасибо за помощь мне!

Samuel Freitas 02.06.2024 18:42

Вместо реализации этой функциональности с помощью JS, если вы используете последнюю версию ionic v8, то по умолчанию она предоставляет компонент ion-input-password-toggle, обеспечивающий поведение изменения видимости текста внутри ввода при нажатии кнопки.

<ion-input type = "password" label = "Password" value = "YourPassword">
  <ion-input-password-toggle slot = "end"></ion-input-password-toggle>
</ion-input>

я попробовал, но он не работает должным образом, и документация по этому компоненту слишком расплывчата :(

Samuel Freitas 02.06.2024 18:35

Можете ли вы поделиться своим кодом с этими изменениями, потому что мне хотелось бы знать, с какой проблемой вы столкнулись?

Yash Maheshwari 03.06.2024 06:31

уже решил это с помощью другого решения: p тем не менее, я думаю, что документация не так объективна, как должна быть. Единственное, что говорят, это поставить тег <ion-input-password-toggle> и больше ничего

Samuel Freitas 03.06.2024 21:16

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