我正在尝试将屏蔽输入插件(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或通过这个插件来实现这一目标?
顺便说一句,我在另一篇文章中看到了类似的东西。但是,如果用户将鼠标放在字段中间,或者突出显示文本的某些部分并将其删除,则会出现问题。
有什么想法吗?
感谢
答案 0 :(得分:0)
我正在为我正在进行的项目做类似的事情。我使用了标准文本输入,并将掩码指定为默认值,并为事件keydown
和paste
添加了一些代码。
它不适用于粘贴文本,但它会阻止用户通过将某些内容粘贴到字段中来更改掩码。
在这里你可以找到一个JSFiddle示例:https://jsfiddle.net/apy5am74/。