Prevent both blur and keyup events to fire after pressing enter in a textbox

后端 未结 8 476
粉色の甜心
粉色の甜心 2021-01-11 10:13

After pressing enter I would like that only the keyup event be fired but blur is fired first. How to cancel blur when

8条回答
  •  粉色の甜心
    2021-01-11 11:09

    Basically, keyup is a trigger for blur event. You should add a flag when keyup fires:

     $('#exemple').keyup(function (e) {
            if (e.which == 13) {
                $('#exemple').addClass('keyupfired');
                alert('whatever');
            }
        });
    

    Then, when blur is fired, it should ask if keyup has already been fired too. Remember to remove the flag if you want the event to be fired when the user get off the textbox:

    $('#exemple').on("blur", function () {
            if (!$('#exemple').hasClass('keyupfired')) {
                alert('whatever');
            }
            $('#exemple').removeClass('keyupfired');
        });
    

提交回复
热议问题