hi, I have an input box, and I have bound both blur and keypress events to the input. but the problem is when there is a keypress event blur event also fires. Is there any way to suppress blur event when keypress event occurs?
thanks
hi, I have an input box, and I have bound both blur and keypress events to the input. but the problem is when there is a keypress event blur event also fires. Is there any way to suppress blur event when keypress event occurs?
thanks
<script src="jquery-1.3.1.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $("#inpt").blur(function(e) {
            EventHandlerBlur(e);
        });
       $("#inpt").keypress(function(e) {
              EventHandlerKeyPress(e);
          });
          $(document).keypress(function(e) {
              EventHandlerKeyPress(e);
          });
    });
</script>
here is the code with same behavior. actually on entering on input/ or even pressing any key on input box is causing blur event to fire first before the keypress event..
i think i found a simple solution.. to handle onchange event instead of blur.
but that still doesnt explain the weird behavior
It sounds like something in your EventHandlerKeyPress() function is raising a blur.
I simplified your code a little just to test and couldn't come to the same conclusion about the order of events firing. Firebug's console shows the following code execution yielding .keypress always occuring before a .blur
<script>
    $(document).ready(function() {
        $("#inpt").blur(function(e) {
            console.log(".blur");
        });
        $("#inpt").keypress(function(e) {
            console.log(".keypress");
        });
    });
</script>
What exactly are you trying to accomplish with .onchange, and .keypress bound to the same field? Might help if you posted your event handler code as well.
Also, you have a global document.keypress bound as well, any particular reason for that?