【问题标题】:Place mask/unmask button inside a password input element在密码输入元素内放置屏蔽/取消屏蔽按钮
【发布时间】:2019-02-07 04:08:25
【问题描述】:

enter image description here

我想将切换隐藏/显示的睁眼引导图标添加到我的输入字段。 我已经知道 javascript 来做到这一点。我只想知道如何将眼睛图像添加到输入字段。

从 W3 学校找到这个 html 代码 - 对于眼睛图标 https://www.w3schools.com/icons/tryit.asp?filename=trybs_ref_glyph_eye-open

【问题讨论】:

  • 你想在点击眼睛上隐藏眼睛吗??
  • 我只想通过引导程序将眼睛图标添加到输入字段。
  • 请看我的回答
  • 你不想要你想要的,但你想在输入中放置一个按钮。图标部分与您的问题无关。

标签: html css


【解决方案1】:

这是您真正追求的,输入字段中的复选框

复选框在“更改”事件中切换密码屏蔽

document.querySelector('.toggleMask').addEventListener('change', onToggleMaskChange);

function onToggleMaskChange(){
  this.nextElementSibling.type = this.checked ? 'text' : 'password'
}
.form-group{
  position: relative;
  width: 50%; /* <-- just for demo */
  overflow:hidden;
}

.form-group > .toggleMask{
  position: absolute;
  top: 0;
  right: -20px;
  text-indent: -30px;
  height:100%;
  line-height: 2;
  pointer-events: auto;
  z-index: 5;
  cursor: pointer;
}

.form-group > .toggleMask ~ input{
  padding-right: 30px;
}

.form-group > .toggleMask:checked::before{
  content:"\e105";
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>

<div class="form-group">
    <input type='checkbox' class="glyphicon glyphicon-eye-close toggleMask"/>
    <input type="password" class="form-control" />
</div>

对于请求 IE 支持的评论者:

var toggleInput = document.querySelector('.toggleMask > input');
toggleInput.addEventListener('change', onToggleMaskChange);

function onToggleMaskChange(){
  
  this.nextElementSibling.className = this.checked 
    ? this.nextElementSibling.className.replace('open', 'close')
    : this.nextElementSibling.className.replace('close', 'open')
    
  this.parentNode.nextElementSibling.type = this.checked ? 'text' : 'password'
}
.form-group{
  position: relative;
  width: 50%; /* <-- just for demo */
  overflow:hidden;
}

.form-group > .toggleMask{
  position: absolute;
  top: 3px;
  right: -30px;
  text-indent: -30px;
  height:100%;
  line-height: 2;
  pointer-events: auto;
  z-index: 5;
  cursor: pointer;
}

.form-group > .toggleMask ~ input{
  padding-right: 30px;
}

.form-group > .toggleMask:checked > span{
  
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>

<div class='form-group'>
    <label class='toggleMask'>
      <input type='checkbox' hidden/>
      <i class='glyphicon glyphicon-eye-close'></i>
    </label>
    <input type='password' class='form-control' />
</div>

【讨论】:

  • @NateRadebaugh - IE?哪个版本? 6? 9? 11?请具体说明什么是行不通的。
  • 对不起。使用最新版本的 IE(11.1000.18298.0)查看时,上面的 sn-p 不呈现任何图标我认为这是由于使用了 CSS:有关更多上下文,请参见此处的说明:stackoverflow.com/questions/26961271/…
【解决方案2】:

使用form-control-feedbacki 标记

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div>
    <i class="glyphicon glyphicon-eye-open form-control-feedback"></i>
    <input type="password" class="form-control" />
</div>

编辑以使用 fontAwesome 代替 bootstrap:https://www.w3schools.com/icons/fontawesome_icons_webapp.asp

使用:afterwrap div

div:after{
    font-family: 'FontAwesome';
    position: relative;
    left: -26px;
    content: "\f06e";
}
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<div>
 <input name="username"">
</div>

【讨论】:

  • 使用 W3.CSS 时要做什么
  • 什么意思?你能解释一下吗?
  • 我已经在我的网站上使用 W3.CSS 库,当我输入这个引导代码时,一切都搞砸了。我不能在 W3.CSS 中使用“表单控制”。
  • 因此您将无法使用此图标,因为它会引导图标...所以您要使用什么?
  • 我想使用 W3.CSS 库而不是引导库。 w3schools.com/icons/fontawesome_icons_webapp.asp
【解决方案3】:

HTML 部分:

<input type="password" value="FakePSW" id="myInput">
<input type="checkbox" onclick="myFunction()">`

JS部分:

function myFunction() {
    var x = document.getElementById("myInput");
    if (x.type === "password") {
        x.type = "text";
    } else {
        x.type = "password";
    }
 }

你可以用这个

【讨论】:

  • 您只是从 w3schools SMH 复制并粘贴...并且没有提供参考。
猜你喜欢
  • 1970-01-01
  • 2015-09-11
  • 1970-01-01
  • 2012-06-27
  • 1970-01-01
  • 1970-01-01
  • 2018-04-23
  • 2011-02-01
  • 1970-01-01
相关资源
最近更新 更多