前言
用户通过扫码枪扫码输入信息的时候,输入框拿到的数据是完全错误的,连位数都对不上😱
问题
用户在使用扫码枪扫码的时候输入法是中文的
需求
输入框从扫码枪获取的数据是对的而且能够显示明文信息
解决
input标签类型改为password,使用块级元素显示明文
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
.input-wrap {
position: relative;
}
.plaintext {
position: absolute;
top: 0;
left: 0;
display: flex;
align-items: center;
&::after {
content: '';
border-right: 1px solid #000;
height: 20px;
animation: .5s cursor infinite;
}
}
@keyframes cursor {
0% {
opacity: 0;
}
50% {
opacity: 1;
}
100% {
opacity: 0;
}
}
#password {
color: transparent;
}
#password,
.plaintext {
height: 40px;
width: 200px;
border-radius: 10px;
box-sizing: border-box;
padding: 0 10px;
}
</style>
</head>
<body>
<div class="input-wrap">
<div class="plaintext" id="plaintext" onclick="handleClick()"></div>
<input
type="password"
placeholder="请输入信息"
id="password"
oninput="handleChange(event)"
autofocus
/>
</div>
<script>
const password = document.getElementById("password");
const plaintext = document.getElementById("plaintext");
const handleClick = () => {
password.focus();
};
const handleChange = (event) => {
const val = event.target.value;
plaintext.innerText = val;
};
</script>
</body>
</html>
效果
最后
一般也就仓储系统会遇到这种场景😆