Show/hide password onClick of button using Javascript only(仅使用 Javascript 显示/隐藏单击按钮的密码)
问题描述
我想在仅使用 Javascript 单击眼睛图标时创建密码切换功能.我已经为它编写了代码,但它仅用于显示密码文本而不是相反.谁能看到下面代码中的逻辑错误.
I want to create password toggle function when clicked on the eye icon using Javascript only. I have written code for it but it works only to show the password text and not the other way round. Can someone see the logic error in the code below.
function show() {
var p = document.getElementById('pwd');
p.setAttribute('type', 'text');
}
function hide() {
var p = document.getElementById('pwd');
p.setAttribute('type', 'password');
}
function showHide() {
var pwShown = 0;
document.getElementById("eye").addEventListener("click", function() {
if (pwShown == 0) {
pwShown = 1;
show();
} else {
pwShow = 0;
hide();
}
}, false);
}
<input type="password" placeholder="Password" id="pwd" class="masked" name="password" />
<button type="button" onclick="showHide()" id="eye">
<img src="ZXllLnBuZw==" alt="ZXll"/>
</button>
推荐答案
每次单击按钮时,您都会绑定单击事件.您不想要多个事件处理程序.另外,您在每次点击时重新定义 var pwShown = 0
,因此您永远无法恢复输入状态(pwShown
保持不变).
You are binding click event every time you click a button. You don't want multiple event handlers. Plus you are redefining var pwShown = 0
on every click so you can never revert input state (pwShown
stays the same).
移除 onclick 属性并与 addEventListener 绑定点击事件:
Remove onclick attribute and bind click event with addEventListener:
function show() {
var p = document.getElementById('pwd');
p.setAttribute('type', 'text');
}
function hide() {
var p = document.getElementById('pwd');
p.setAttribute('type', 'password');
}
var pwShown = 0;
document.getElementById("eye").addEventListener("click", function () {
if (pwShown == 0) {
pwShown = 1;
show();
} else {
pwShown = 0;
hide();
}
}, false);
<input type="password" placeholder="Password" id="pwd" class="masked" name="password" />
<button type="button" id="eye">
<img src="aHR0cHM6Ly9jZG4wLmljb25maW5kZXIuY29tL2RhdGEvaWNvbnMvZmVhdGhlci85Ni9leWUtMTYucG5n" alt="ZXll" />
</button>
这篇关于仅使用 Javascript 显示/隐藏单击按钮的密码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:仅使用 Javascript 显示/隐藏单击按钮的密码


- Flexslider 箭头未正确显示 2022-01-01
- 失败的 Canvas 360 jquery 插件 2022-01-01
- Css:将嵌套元素定位在父元素边界之外一点 2022-09-07
- Quasar 2+Apollo:错误:找不到ID为默认的Apollo客户端。如果您在组件设置之外,请使用ProvideApolloClient() 2022-01-01
- 400或500级别的HTTP响应 2022-01-01
- 使用RSelum从网站(报纸档案)中抓取多个网页 2022-09-06
- Fetch API 如何获取响应体? 2022-01-01
- 如何使用 JSON 格式的 jQuery AJAX 从 .cfm 页面输出查 2022-01-01
- CSS媒体查询(最大高度)不起作用,但为什么? 2022-01-01
- addEventListener 在 IE 11 中不起作用 2022-01-01