Почему attr не работает в jquery для ввода? - PullRequest
1 голос
/ 07 мая 2020

Вот мой код, и я понятия не имею, почему мой тип пароля не меняется ... tnx для чтения.

$('.btn-show-pass').click( function(){
 $(this).find('i').toggleClass("fa-eye fa-eye-slash"); 
 var input = $($(this).attr("toggle"));

 input.attr("type", "text");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span toggle='#passInput' class="btn-show-pass"><i class="fa fa-eye" aria-hidden="true"></i></span>
<input id='passInput' class="input100" type="password" name="password">

1 Ответ

2 голосов
/ 07 мая 2020

Для переключения между типами ввода вы можете настроить свой код следующим образом:

$('.btn-show-pass').click(function() {
  $(this).find('i').toggleClass("fa-eye fa-eye-slash");
  var input = $($(this).attr("toggle"));
  if (input.attr("type") == "password") {
    input.attr("type", "text");
  } else {
    input.attr("type", "password");
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span toggle='#passInput' class="btn-show-pass">click<i class="fa fa-eye" aria-hidden="true"></i></span>
<input id='passInput' class="input100" type="password" name="password">

Обновление: Как упоминалось в комментариях, переключение между типами ввода не было реальной проблемой. Проблема заключалась в том, что код на сайте не работал. Это было вызвано более старой версией jQuery, которая не позволяла изменять тип ввода с пароля на текст. Обновление до более новой версии jQuery решило проблему.

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