如何通过jquery将普通字符更改为密码字符?

如何通过jquery将普通字符更改为密码字符?,jquery,Jquery,假设我有一个文本框,我希望当用户在其中键入时,jQuery会在1秒后将每个字符转换为密码符号 与我们在现代智能手机上输入密码文本框时看到的效果相同 有人有什么建议吗?我知道如何捕捉按键并输入用户角色 <input type="text" id="username" name="username" /> <script type="text/javascript"> $("#username").keypress(function(event){ // Get th

假设我有一个文本框,我希望当用户在其中键入时,jQuery会在1秒后将每个字符转换为密码符号

与我们在现代智能手机上输入密码文本框时看到的效果相同

有人有什么建议吗?我知道如何捕捉按键并输入用户角色

<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>