在生日输入上添加“/”,但在按下删除时删除“/”

Adding “/“ on birthday input, but delete “/“ when delete is pressed

我有这段代码,当生日的长度为 2 时添加一个“/”。但是当按下删除时,它会不断添加“/”,但我不希望这种情况发生,我想删除斜杠和前一个数字。

$("#birthday").keyup(function (){
    var bLenght = $("#birthday").val().length
    console.log(bLenght);

    if (bLenght === 2 || bLenght == 5) {
        console.log(bLenght);
        $("#birthday").val($("#birthday").val()+"/");
    }
});

这个有效:

$("#birthday").keyup(function (e){
    if(e.which !== 46 && e.which !== 8)
    {
        var bLenght = $("#birthday").val().length
        console.log(bLenght);

    if (bLenght === 2 || bLenght == 5) {
        console.log(bLenght);
        $("#birthday").val($("#birthday").val()+"/");
    }
}
});

您的问题是,当您按退格键或删除键时,它会删除正斜杠。然后松开按键,因为有两个字符,正斜杠被重新添加。我添加了一个 if 块来检查释放的键是退格键 (8) 还是删除键 (46),这样您就不会陷入该循环。