Javascript 阿达尔掩蔽
我试图检测Javascript 阿达尔掩蔽,javascript,jquery,Javascript,Jquery,我试图检测输入字段上的后退按钮按下。我已经尝试了移动Chrome中的e.key和e.which,这是未定义的。我怎样才能让它工作?在桌面上,它工作得很好 jQuery(函数($){//DOM-ready和$alias-secured 让aadhaar=“”; 设aadhaarStack=[]; 让maskStack=[]; 设flag=0; $('aadhaar')。关于('input',函数(e){ 设key=e.which | | this.value.substr(-1).charCod
输入
字段上的后退按钮按下。我已经尝试了移动Chrome中的e.key
和e.which
,这是未定义的。我怎样才能让它工作?在桌面上,它工作得很好
jQuery(函数($){//DOM-ready和$alias-secured
让aadhaar=“”;
设aadhaarStack=[];
让maskStack=[];
设flag=0;
$('aadhaar')。关于('input',函数(e){
设key=e.which | | this.value.substr(-1).charCodeAt(0);
console.log(“此处也有”)
如果(标志===1){
console.log(“此处”)
aadhaarStack.pop();
maskStack.pop();
}否则{
key=String.fromCharCode(key);
if(aadhaarStack.filter(i=>i!==”).length 1&(aadhaarStack.filter(i=>i!==”).length)%4==0){
aadhaarStack.推送(“”);
aadhaarStack.推(键);
maskStack.push(“”);
if(aadhaarStack.filter(i=>i!==“”)。长度>8){
maskStack.push(按键);
}否则{
maskStack.push(“X”);
}
}否则{
aadhaarStack.推(键);
if(aadhaarStack.filter(i=>i!==“”)。长度>8){
maskStack.push(按键);
}否则{
maskStack.push(“X”);
}
}
}
}
updateUi();
});
函数updateUi(){
setTimeout(函数(){
aadhaar=maskStack.join(“”);
$('aadhaar').val(aadhaar);
}, 100);
}
$('#aadhaar')。关于('keydown',函数(e){
警惕(e.key);
设key=e.which | | this.value.substr(-1).charCodeAt(0);
如果(key==8 | | key==46 | | e.key====Backspace'){
flag=1;
}否则{
flag=0;
}
console.log(“这里的第一个”)
})
});代码>
实际上,您不需要处理背压,因为此解决方案不可靠。
我的解决方案是尝试比较上一个和当前的长度,然后在此基础上执行任务
jQuery(function($) { // DOM ready and $ alias secured
let aadhaar = "";
let aadhaarStack = [];
let maskStack = [];
let flag = 0;
$('#aadhaar').on('input', function(e) {
let key = e.which || this.value.substr(-1).charCodeAt(0);
if (this.value.length < aadhaarStack.length) {
aadhaarStack.pop();
maskStack.pop();
} else {
key = String.fromCharCode(key);
if (aadhaarStack.filter(i => i !== " ").length <= 11 && !isNaN(key)) {
if (aadhaarStack.length > 1 && (aadhaarStack.filter(i => i !== " ").length) % 4 === 0) {
aadhaarStack.push(" ");
aadhaarStack.push(key);
maskStack.push(" ");
if (aadhaarStack.filter(i => i !== " ").length > 8) {
maskStack.push(key);
} else {
maskStack.push("X");
}
} else {
aadhaarStack.push(key);
if (aadhaarStack.filter(i => i !== " ").length > 8) {
maskStack.push(key);
} else {
maskStack.push("X");
}
}
}
}
updateUi();
});
function updateUi() {
setTimeout(function() {
aadhaar = maskStack.join("");
$('#aadhaar').val(aadhaar);
}, 100);
}
});
jQuery(函数($){//DOM-ready和$alias-secured
让aadhaar=“”;
设aadhaarStack=[];
让maskStack=[];
设flag=0;
$('aadhaar')。关于('input',函数(e){
设key=e.which | | this.value.substr(-1).charCodeAt(0);
if(this.value.lengthi!==”).length 1&(aadhaarStack.filter(i=>i!==”).length)%4==0){
aadhaarStack.推送(“”);
aadhaarStack.推(键);
maskStack.push(“”);
if(aadhaarStack.filter(i=>i!==“”)。长度>8){
maskStack.push(按键);
}否则{
maskStack.push(“X”);
}
}否则{
aadhaarStack.推(键);
if(aadhaarStack.filter(i=>i!==“”)。长度>8){
maskStack.push(按键);
}否则{
maskStack.push(“X”);
}
}
}
}
updateUi();
});
函数updateUi(){
setTimeout(函数(){
aadhaar=maskStack.join(“”);
$('aadhaar').val(aadhaar);
}, 100);
}
});
这可能有助于回答您的问题吗?从代码的行为来看,您似乎只是试图用X
字符隐藏用户输入。因此,为什么不直接使用type=“password”
输入…?还要注意,maxlength
需要更改为maxlength
@rorymcrossan它不仅要更改字符,而且每四个字符后面都要加空格,最后四个字符都应该可见。这就是我要找的真棒的兄弟,谢谢