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它不仅要更改字符,而且每四个字符后面都要加空格,最后四个字符都应该可见。这就是我要找的真棒的兄弟,谢谢