如何将屏蔽输入插件应用于密码字段?

时间:2016-06-17 23:12:28

标签: jquery maskedinput

我正在尝试将屏蔽输入插件(jquery.maskedinput.min.js)应用于密码字段以便创建:

****-****-****

它基本上是一个由破折号分隔的注册码。

 $(document).ready(function(){
        $("#registrationKey").mask("9999-9999-9999");

        $("#registrationKey").keyup(function(e) {
              self = $(this);
              rkValue = self.val().replace(/[^\d\-]/g, '');
              self.val(rkValue);
              console.log("value = " + rkValue);
              self.attr("regKey", rkValue);
        });
});

<input type="password" id="registrationKey" name="registrationKey" regKey="" maxlength="15" autocomplete="off" >

我有两个问题。第一个是由于应用了掩码,该字段已经填充。第二个问题是它不会在每第4个数字后应用破折号。

有没有办法通过纯JavaScript或通过这个插件来实现这一目标?

顺便说一句,我在另一篇文章中看到了类似的东西。但是,如果用户将鼠标放在字段中间,或者突出显示文本的某些部分并将其删除,则会出现问题。

有什么想法吗?

感谢

1 个答案:

答案 0 :(得分:0)

我正在为我正在进行的项目做类似的事情。我使用了标准文本输入,并将掩码指定为默认值,并为事件keydownpaste添加了一些代码。 它不适用于粘贴文本,但它会阻止用户通过将某些内容粘贴到字段中来更改掩码。

在这里你可以找到一个JSFiddle示例:https://jsfiddle.net/apy5am74/