JavaScript使用键盘监听事件实现把password类型输入框默认字符●修改成*

本文介绍了一种使用JavaScript和CSS实现的简易密码输入框,通过隐藏一个输入框并在用户聚焦时显示星号,实时处理数字输入和退格操作,保持底层值同步。
摘要由CSDN通过智能技术生成

之前看了网上的文章使用各种方法都不好用,自己用js做了一个简易的实现。这个方法的原理是用css重叠两个输入框,并且不显示上面那个,当用户聚焦到上面输入框时,改变下面输入框样式,并记录用户键盘输入内容,为数字时底部输入框的值拼接一个字符串*。为退格时移除最后一个字符串*

css

/* 两个输入框外的盒子 */
.inp-box {
	position: relative;
}

#password,
#password_show {
	position: absolute;
	left: 0;
	top: 0;
	z-index: 1;
}

/* 上面的输入框完全透明 */
#password {
	z-index: 10;
	opacity: 0;
}

/* input被聚焦时的样式 */
.inp-focus {
	padding-block: 1px;
	padding-inline: 2px;
	margin: 0em;
	padding: 1px 0px;
	border-width: 2px;
	border-style: inset;
	border-color: light-dark(rgb(118, 118, 118), rgb(133, 133, 133));
	border-image: initial;
}

html和script

<div class="inp-box"> <!-- 相对定位 -->
	<input type="text" name="" id="password"> <!-- 绝对定位方式使两输入框重合 -->
	<input type="text" name="" id="password_show">
</div>
		
		
<script>
	var pwdEL = document.querySelector( '#password' )
	var pwd1 =""
	pwdEL.onkeydown = function keydown(event) {
			console.log(event)
			console.log("按键按下" + event.key)
			if(!isNaN(Number(event.key))){ // 如是数字
				password_show.value += "*" // 表面显示一星号
				pwd1 += event.key // 底层变量值跟着变
			}else if(event.key == "Backspace"){ // 如是退格 表面和内部字符串均去除最后一位
				password_show.value = password_show.value.slice(0, -1)
				pwd1 = pwd1.slice(0, -1)
			}
	}
			
	pwdEL.onfocus = function(){
		console.log("聚焦")
		password_show.className = "inp-focus"
	}
	pwdEL.onblur = function(){
		console.log("失焦")
		password_show.className = ""
	}			
</script>

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值