LLLit: Изучение и практика программирования

как сделать текстовое поле пароля видимым при наведении на значок

Всем добрый день,

У меня есть форма с полем пароля:

<input type="password" name="password" size="30" />

Естественно, введенный текст будет заменен на (*).

Таким образом, если пользователь набрал 123, в поле отобразится ***.

До сих пор это прямолинейно, но...

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

Таким образом, при наведении курсора в поле будет отображаться 123, а когда пользователь покинет значок, в поле снова должно отображаться ***.

Есть ли способ сделать это с помощью JavaScript? Кроме того, я использую HTML и PHP.

ИЗМЕНИТЬ:

На самом деле это не обязательно должна быть иконка, это может быть флажок или кнопка... И если бы это можно было сделать в CSS, я был бы очень признателен, если бы узнал, как это сделать

P.S. Я гуглил и искал в stackoverflow, но безуспешно

18.03.2014

Ответы:


1

Вам нужно будет получить текстовое поле через javascript при наведении на него указателя мыши и изменить его type на text. И при перемещении вы захотите изменить его обратно на password. Нет возможности сделать это в чистом CSS.

HTML:

<input type="password" name="password" id="myPassword" size="30" />
<img src="theicon" onmouseover="mouseoverPass();" onmouseout="mouseoutPass();" />

JS:

function mouseoverPass(obj) {
  var obj = document.getElementById('myPassword');
  obj.type = "text";
}
function mouseoutPass(obj) {
  var obj = document.getElementById('myPassword');
  obj.type = "password";
}
18.03.2014
  • он отлично работал в Chrome и Firefox, но не в IE. У меня IE 10 18.03.2014
  • Это отлично работает с IE 10, я отключил представление совместимости. А как насчет старых IE? 18.03.2014
  • Это довольно простой и низкоуровневый javascript, поэтому он должен быть совместим с очень старыми браузерами. 18.03.2014

  • 2

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

    Посмотрите мою простую демонстрацию jquery: http://jsfiddle.net/kPJbU/1/

    HTML:

    <input name="password" class="password" type="password" />
    <div class="icon">icon</div>
    

    jQuery:

    $('.icon').hover(function () {
        $('.password').attr('type', 'text');
    }, function () {
        $('.password').attr('type', 'password');
    });
    
    18.03.2014

    3

    Я использую эту одну строку кода, она должна это сделать:

    <input type="password"
           onmousedown="this.type='text'"
           onmouseup="this.type='password'"
           onmousemove="this.type='password'">
    
    09.12.2016
  • Это должно быть onmouseover и onmouseout. 02.11.2018

  • 4

    Полный пример ниже. Я просто люблю копировать/вставлять :)

    HTML

    <div class="container">
        <div class="row">
            <div class="col-md-8 col-md-offset-2">
               <div class="panel panel-default">
                  <div class="panel-body">
                      <form class="form-horizontal" method="" action="">
    
                         <div class="form-group">
                            <label class="col-md-4 control-label">Email</label>
                               <div class="col-md-6">
                                   <input type="email" class="form-control" name="email" value="">
                               </div>
                         </div>
                         <div class="form-group">
                           <label class="col-md-4 control-label">Password</label>
                              <div class="col-md-6">
                                  <input id="password-field" type="password" class="form-control" name="password" value="secret">
                                  <span toggle="#password-field" class="fa fa-lg fa-eye field-icon toggle-password"></span>
                              </div>
                         </div>
                     </form>
                  </div>
               </div>
          </div>
      </div>
    

    CSS

    .field-icon {
      float: right;
      margin-right: 8px;
      margin-top: -23px;
      position: relative;
      z-index: 2;
      cursor:pointer;
    }
    
    .container{
      padding-top:50px;
      margin: auto;
    }
    

    JS

    $(".toggle-password").click(function() {
       $(this).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");
       }
    });
    

    Попробуйте здесь: https://codepen.io/anon/pen/ZoMQZP.

    15.05.2018
  • просто простой и исполняемый, мне это нравится. 12.09.2020

  • 5

    В одной строке кода, как показано ниже:

    <p> cursor on text field shows text .if not password will be shown</p>
    <input type="password" name="txt_password" onmouseover="this.type='text'"
           onmouseout="this.type='password'" placeholder="password" />

    27.03.2020
  • Переместите указатель мыши через поле редактирования с определенной скоростью, чтобы браузер сгенерировал событие onmouseover, но не успел сгенерировать onmouseout и увидеть, что он остается в текстовом режиме. 25.03.2021

  • 6

    1-минутное гугление дало мне этот результат. См. DEMO!

    HTML

    <form>
        <label for="username">Username:</label>
        <input id="username" name="username" type="text" placeholder="Username" />
        <label for="password">Password:</label>
        <input id="password" name="password" type="password" placeholder="Password" />
        <input id="submit" name="submit" type="submit" value="Login" />
    </form>
    

    jQuery

    // ----- Setup: Add dummy text field for password and add toggle link to form; "offPage" class moves element off-screen
    $('input[type=password]').each(function () {
        var el = $(this),
            elPH = el.attr("placeholder");
        el.addClass("offPage").after('<input class="passText" placeholder="' + elPH + '" type="text" />');
    });
    $('form').append('<small><a class="togglePassText" href="#">Toggle Password Visibility</a></small>');
    
    // ----- keep password field and dummy text field in sync
    $('input[type=password]').keyup(function () {
        var elText = $(this).val();
        $('.passText').val(elText);
    });
    $('.passText').keyup(function () {
        var elText = $(this).val();
        $('input[type=password]').val(elText);
    });
    
    // ----- Toggle link functionality - turn on/off "offPage" class on fields
    $('a.togglePassText').click(function (e) {
        $('input[type=password], .passText').toggleClass("offPage");
        e.preventDefault(); // <-- prevent any default actions
    });
    

    CSS

    .offPage {
        position: absolute;
        bottom: 100%;
        right: 100%;
    }
    
    18.03.2014
  • какую фразу вы использовали для поиска? 18.03.2014
  • тип ввода пароль виден 18.03.2014
  • Почему, во имя Одина, возникает бормотание jQuery, когда вопрос явно относится к простому и чистому JavaScript для ответа? 19.07.2019

  • 7

    Попробуй это :

    В HTML и JS:

    // Convert Password Field To Text On Hover.
      var passField = $('input[type=password]');
      $('.show-pass').hover(function() {
          passField.attr('type', 'text');
      }, function() {
        passField.attr('type', 'password');
      })
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
    <!-- An Input PassWord Field With Eye Font-Awesome Class -->
    <input type="password" placeholder="Type Password">
          <i class="show-pass fa fa-eye fa-lg"></i>

    24.12.2016
  • следует отметить, что вы кодируете в jquery, а не в javascript. 27.04.2020

  • 8

    Его простой javascript. Выполнено с помощью переключения атрибута type ввода. Проверьте это http://jsfiddle.net/RZm5y/16/.

    18.03.2014

    9
       <script>
           function seetext(x){
               x.type = "text";
           }
           function seeasterisk(x){
              x.type = "password";
           }
       </script>
      <body>
        <img onmouseover="seetext(a)" onmouseout="seeasterisk(a)" border="0" src="smiley.gif"   alt="Smiley" width="32" height="32">
       <input id = "a" type = "password"/>
     </body>
    

    Попробуйте это, посмотрите, работает ли это

    18.03.2014
  • работает только в том случае, если вы установили var a = document.getElementById('a'); глобально до 19.03.2014

  • 10

    быстрый отклик не тестировался на нескольких браузерах, работает на gg chrome/win

    -> Событие в фокусе -> показать/скрыть пароль

    <input type="password" name="password">
    

    скрипт jquery

    // show on focus
    $('input[type="password"]').on('focusin', function(){
    
        $(this).attr('type', 'text');
    
    });
    // hide on focus Out
    $('input[type="password"]').on('focusout', function(){
    
        $(this).attr('type', 'password');
    
    });
    
    17.01.2019
    Новые материалы

    Prompt2model: создайте большую языковую модель с помощью всего лишь приглашения
    Самый простой способ получить эксперта LLM Prompt2Model ( Viswanathan et al, 2023 ) обучает небольшие экспертные модели, используя в качестве входных данных только подсказку. Наборы обучающих..

    10 лучших книг по искусственному интеллекту (ИИ), которые стоит прочитать в 2022 году
    Искусственный интеллект — сложная и интересная тема, которая меняет то, как мы ведем бизнес. Поиск подходящей книги для ваших нужд может быть трудным, особенно для новичков. За последние два..

    Советы Unity: инструменты редактора
    Потратьте некоторое время на работу с простыми инструментами, которые помогут вам в отладке игры. Я работаю с Unity3D почти десять лет и знаю, что инструменты редактора удобны и эффективны...

    Сшивка фрагментов тайлов карты
    Сшивка фрагментов тайлов карты Векторные плитки Mapbox потрясающие - и концептуально захватывающие. Они позволяют нам создавать молниеносные карты с огромными объемами данных, обеспечивая..

    Разработка Rails 6 с помощью Docker
    Практическое руководство по расширению рабочего процесса Rails с помощью детерминированной среды разработки В этом руководстве рассматривается настройка Docker для разработки Rails на вашем..

    #1 Введение в Swift: переменные, константы, операторы
    Добро пожаловать в серию статей «Введение в Swift». В этой серии я познакомлю вас с языком программирования Swift и всеми основами, которые вам нужно знать, чтобы приступить к работе, чтобы начать..

    Как эффективно использовать текстовые данные!
    Данные быстро становятся валютой информационного века, поговорка: «Вы не более важны, чем данные, которые вы производите», может быть слишком экстремальной, но она в значительной степени..