如何通过jquery将普通字符更改为密码字符?
假设我有一个文本框,我希望当用户在其中键入时,jQuery会在1秒后将每个字符转换为密码符号 与我们在现代智能手机上输入密码文本框时看到的效果相同 有人有什么建议吗?我知道如何捕捉按键并输入用户角色如何通过jquery将普通字符更改为密码字符?,jquery,Jquery,假设我有一个文本框,我希望当用户在其中键入时,jQuery会在1秒后将每个字符转换为密码符号 与我们在现代智能手机上输入密码文本框时看到的效果相同 有人有什么建议吗?我知道如何捕捉按键并输入用户角色 <input type="text" id="username" name="username" /> <script type="text/javascript"> $("#username").keypress(function(event){ // Get th
<input type="text" id="username" name="username" />
<script type="text/javascript">
$("#username").keypress(function(event){
// Get the keypress value
// ...?
var c = String.fromCharCode(e.which);
}
});
</script>
$(“#用户名”).keypress(函数(事件){
//获取keypress值
// ...?
var c=String.fromCharCode(e.which);
}
});
您实际上不需要处理按键操作。使用1秒超时循环,并用星号替换文本框中的所有字符。别忘了在变量中存储字符
下面类似的内容会对您有所帮助,但您必须花一些时间来修复bug。
您可以从以下内容开始:但它只有在正确输入的情况下才能工作。
您应该将该值保存在另一个变量中(我在示例中使用
字母
数组),因为标准输入只允许您更改星号的值,从而丢失用户键入的所有内容
问题#1。您应该添加对非符号的检查。例如,Del键将向字母
数组添加坏符号
问题#2。您应该添加退格检查,并使用splice
删除元素
第三期。如果用户从文本中间删除符号,则很难将新值与存储初始值的变量同步
毕竟,我认为这不是一个好主意,但我的代码可能会帮助您找到更好的解决方案。javascript自定义掩码密码
.面具{
位置:相对位置;
溢出:隐藏;
}
输入#通过{
位置:绝对位置;
左:0;
排名:0;
不透明度:0;
}
var txt=document.getElementById(“txtMask”);
var hdn=document.getElementById(“pass”);
hdn.addEventListener(“键控”,功能(evt){
txt.value='';
例如(假设i=0;在移动设备上进行此操作的原因是“胖指”的概率很高,这不是全键盘的问题。我建议不要这样做。Jeremy,向用户显示他输入的密码是有正当的可用性理由的。请参见,例如,以及。胖手指与性行为无关。它只是意味着你的(大)手指一定会碰到(小)手指在你的智能手机键盘上的目标旁边的键。更新了答案,但有一些错误。在我放置另一个字符之前,最后一个字符是可见的。无论如何,你与我在这里询问的内容非常接近。
<style>
.mask {
position: relative;
overflow: hidden;
}
input#pass {
position: absolute;
left: 0;
top: 0;
opacity: 0;
}
</style>
<script>
var txt = document.getElementById("txtMask");
var hdn = document.getElementById("pass");
hdn.addEventListener("keyup", function(evt){
txt.value = '';
for(let i=0; i<hdn.value.length;i++)
{
txt.value +='@';
}
});
</script>
<div class="mask">
<input type="text" id="txtMask" autocomplete="false">
<input type="text" id="pass">
</div>