Javascript 表格输入不允许我删除已添加的“/&引用;对于CC过期字段

Javascript 表格输入不允许我删除已添加的“/&引用;对于CC过期字段,javascript,jquery,input,Javascript,Jquery,Input,我正在尝试创建一个文本框,该文本框接受来自CC的过期日期。当用户输入时,我想在前两个数字后面加一个斜杠(/)(将文本的格式设置为MM/YY)。这个很好用。但是,当我尝试在添加斜杠后删除数字时,我的代码只会不断添加斜杠,不允许我进一步删除。我引用了这篇关于如何在输入事件中检测退格或删除的文章(),并将其构建到我的代码中,但仍然不起作用。你有没有想过我该如何让它发挥作用,或者我哪里出了问题 //textbox <div><label for="expiryBx"

我正在尝试创建一个文本框,该文本框接受来自CC的过期日期。当用户输入时,我想在前两个数字后面加一个斜杠(/)(将文本的格式设置为MM/YY)。这个很好用。但是,当我尝试在添加斜杠后删除数字时,我的代码只会不断添加斜杠,不允许我进一步删除。我引用了这篇关于如何在输入事件中检测退格或删除的文章(),并将其构建到我的代码中,但仍然不起作用。你有没有想过我该如何让它发挥作用,或者我哪里出了问题

//textbox
<div><label for="expiryBx">Expiration Date</label><div><input type="text" id="expiryBx" name="expiryBx" maxlength="5" placeholder="MM/YY"></div></div>

//add "/" (slash) after two chars to make it look like an expiration date
$('#expiryBx').on('keyup',function(e){
  //var KeyPress = e.which;
  var KeyPress = event.keyCode || event.charCode;
  console.log('poll number of keys pressed ' + this.value.length);
  console.log('poll keypressed ' + KeyPress);

//add the slash
  if(this.value.length === 2 && (KeyPress !== 8 || KeyPress !== 46)){

    this.value = this.value + '/';

  }

//after 5 chars (4 + slash) split the string so that I can use it elsewhere
  if(this.value.length === 5){

    var FullExpiry = this.value;
    expiryValues = FullExpiry.split('/');
    var ExpMnt = expiryValues[0]; 
    var ExpYr = expiryValues[1]; 
    var ExpFinalYMnt = 'string:' + ExpMnt;
    var ExpFinalYr = '20' + ExpYr;
    console.log('poll ' + ExpMnt);
    console.log('poll ' + ExpYr);
    
  }


});
//文本框
到期日期
//在两个字符后添加“/”(斜杠),使其看起来像过期日期
$('#expiryBx')。在('keyup',函数(e)上{
//var-KeyPress=e.which;
var KeyPress=event.keyCode | | event.charCode;
console.log('轮询按下的键数'+此.value.length);
console.log('poll keypressed'+KeyPress);
//添加斜杠
if(this.value.length==2&&(按键!==8 | |按键!==46)){
this.value=this.value+'/';
}
//5个字符(4+斜杠)后,拆分字符串,以便我可以在其他地方使用它
if(this.value.length==5){
var FullExpiry=此值;
expiryValue=FullExpiry.split('/');
var ExpMnt=到期价值[0];
var ExpYr=到期价值[1];
var ExpFinalYMnt='string:'+ExpMnt;
变量ExpFinalYr='20'+ExpYr;
console.log('poll'+ExpMnt);
console.log('poll'+ExpYr);
}
});

提前谢谢

这是你期望的行为吗

//在两个字符后添加“/”(斜杠),使其看起来像过期日期
$('#expiryBx')。在('keyup',函数(e)上{
//var-KeyPress=e.which;
var KeyPress=event.keyCode | | event.charCode;
console.log('轮询按下的键数'+此.value.length);
console.log('poll keypressed'+KeyPress);
//添加斜杠&(按键!==8 | |按键!==46)
if(this.value.length==2&&KeyPress!==8&&KeyPress!==46){
this.value=this.value+'/';
}
//5个字符(4+斜杠)后,拆分字符串,以便我可以在其他地方使用它
if(this.value.length==5){
var FullExpiry=此值;
expiryValue=FullExpiry.split('/');
var ExpMnt=到期价值[0];
var ExpYr=到期价值[1];
var ExpFinalYMnt='string:'+ExpMnt;
变量ExpFinalYr='20'+ExpYr;
console.log('poll'+ExpMnt);
console.log('poll'+ExpYr);
}
});

//文本框

过期日期
就是这样做的。这就是你改变的一切吗?如果(this.value.length==2&&KeyPress!==8&&KeyPress!==46)是。但是你需要添加更多的验证。参考