如何使密码文本框值在悬停图标时可见

问题描述 投票:0回答:11

大家好,

我有一个带有密码字段的表单:

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

自然地,输入的文本将被替换为(*)。

因此,如果用户输入

123
,该框将显示
***

到目前为止,一切都很简单,但是...

现在,我想在密码框旁边添加一个小图标,这样当用户将鼠标悬停在该图标上时,他可以看到到目前为止输入的内容。

因此,悬停时,该框将显示

123
,当用户离开该图标时,该框应再次显示
***

有没有办法用 JavaScript 来做到这一点?另外,我正在使用 HTML 和 PHP。

编辑:

它真的不需要是一个图标,它可以是一个复选框或一个按钮......如果它可以在CSS中完成,我真的很感激知道如何

附注我用谷歌搜索并搜索了 stackoverflow 但没有运气

javascript jquery html css
11个回答
54
投票

将鼠标移到文本框上方时,您需要通过 javascript 获取文本框,并将其

type
更改为
text
。当把它移出时,你会想把它改回
password
。没有机会在纯 CSS 中做到这一点。

function mouseoverPass() {
  let obj = document.getElementById('myPassword');
  obj.type = 'text';
}
function mouseoutPass() {
  let obj = document.getElementById('myPassword');
  obj.type = 'password';
}
<input type="password" name="password" id="myPassword" size="30" />
<img src="theicon" onmouseover="mouseoverPass();" onmouseout="mouseoutPass();" />


17
投票

正如这些人所说,只需更改输入类型即可。
但不要忘记也将类型改回来。

查看我的简单 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');
});

11
投票

我用这一行代码,应该可以做到:

<input type="password"
       onmousedown="this.type='text'"
       onmouseup="this.type='password'"
       onmousemove="this.type='password'">

10
投票

下面的完整示例。我只是喜欢复制/粘贴:)

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/Loginet/pen/oNeevMe


6
投票

一行代码如下:

<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" />


3
投票

1 分钟谷歌搜索给了我这个结果。请参阅演示

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%;
}

2
投票

试试这个:

在 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>


1
投票

它是简单的 JavaScript。使用切换输入的

type
属性完成。检查这个http://jsfiddle.net/RZm5y/16/


1
投票
   <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>

试试看是否有效


1
投票

未在多种浏览器上测试的快速响应, 适用于 gg chrome / win +edit:在 Linux/Brave 上可以

-> 焦点事件 -> 显示/隐藏密码

<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');

});

-1
投票
<html>
<head>
</head>
<body>
<script>
function demo(){
    var d=document.getElementById('s1');
    var e=document.getElementById('show_f').value;
    var f=document.getElementById('show_f').type; 

    if(d.value=="show"){
        var f= document.getElementById('show_f').type="text";
        var g=document.getElementById('show_f').value=e;
        d.value="Hide";

    } else{
        var f= document.getElementById('show_f').type="password";
        var g=document.getElementById('show_f').value=e;
        d.value="show";
     }     
  }   
</script>   

<form method='post'>
Password: <input type='password' name='pass_f' maxlength='30' id='show_f'><input type="button" onclick="demo()" id="s1" value="show" style="height:25px; margin-left:5px;margin-top:3px;"><br><br>
<input type='submit' name='sub' value='Submit Now'>

</form>
</body>
</html>
© www.soinside.com 2019 - 2024. All rights reserved.