сообщение об ошибке все еще отображается, когда я нажимаю клавишу Backspace (например, == 8) - PullRequest
1 голос
/ 14 января 2020

Это код. я просто хочу скрыть сообщение, когда я нажимаю клавишу возврата, я не знаю, почему он не уходит на клавишу возврата, кроме того, что он работает нормально.

    //on keypressed in textbox
    $(".phone").keypress(function (e) {
        if (e.which == 8 ){
            $(".errmsg").hide();
        }
        //if not numeric, then it don't let you type
        if (e.which != 8 && e.which != 43 && e.which != 45  && (e.which < 48 || e.which > 57)) {
           debugger
            //display error message
            $(".errmsg").html("Digits Only").show();
            e.preventDefault();
        } else {
            debugger
            $(".errmsg").hide();
        }
    });

1 Ответ

4 голосов
/ 14 января 2020

Пожалуйста, используйте keyup и keydown события для обработки этого.

//on keypressed in textbox
$(".phone").on('keyup keydown', function(e) {
    if (e.which == 8) {
        console.log('backspace key pressed');
    }

    //if not numeric, then it don't let you type
    if (e.which != 8 && e.which != 43 && e.which != 45 && (e.which < 48 || e.which > 57)) {

        //display error message
        $(".errmsg").html("Digits Only").show();
        e.preventDefault();
    } else {

        $(".errmsg").hide();
    }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

 <input type="text" class="phone" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...