微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有斜线问题的信用卡到期日

如何解决有斜线问题的信用卡到期日

信用卡有效期:mm/yy 每当我输入两个数字时,我需要添加“/”,但目前当我删除第三个数字时,他只会删除一个数字。如何删除第三个数字和斜杠?

请帮忙谢谢。

var characterCount
$('#expiry').on('input',function(e) {
  if ($(this).val().length == 2 && characterCount < $(this).val().length) {
    $(this).val($(this).val() + '/');
  }
  characterCount = $(this).val().length
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="expiry" type="text" />

解决方法

纯js

const inp = document.querySelector('#expiry')

inp.onkeydown = function() {

  const key = event.keyCode || event.charCode;
  
  if (key !== 8 && key !== 46 ) {
    if (inp.value.length == 2) {
        inp.value= (inp.value+'/');
    }
  }
  
  if (( key == 8 || key == 46 ) && inp.value.length === 4) {
    inp.value = inp.value.slice(0,3)
  }    
};
<input id="expiry" type="text" />

,

您可以添加额外的 keyup 事件,当按下退格键时,删除值末尾的所有尾部斜杠。

我还建议在输入上设置 maxlengthpatterninputmode 属性。

var characterCount;
$('#expiry').on('input',function(e) {
  if ($(this).val().length == 2 && characterCount < $(this).val().length) {
    $(this).val($(this).val() + '/');
  }
  characterCount = $(this).val().length
}).on('keyup',function(e) {
  if (e.which === 8) {
    $(this).val($(this).val().replace(/\/$/,''))
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="expiry" type="text" maxlength="5" pattern="^\d{2}/\d{2}$" inputmode="numeric" />

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。