Prevent onblur code to execute if clicked on submit button

前端 未结 3 1465
长情又很酷
长情又很酷 2021-02-04 12:15

By the following code I wish to \"DO SOMETHING\" on \"ONBLUR\" of element id=\"eg1\" only if the onblur event was not caused due to \"ONCLICK\" on the submit button.

<         


        
相关标签:
3条回答
  • 2021-02-04 12:25

    blur event of an element triggers before click event of another. So one way is to use mousedown and mouseup events to toggle a flag, because mousedown event of one element triggers before blur event of another one.

    $("#eg1").on("blur", function(e){
      if($("#submit").data("mouseDown") != true){
          alert("DO SOMETHING");
      }
    });
    
    $("#submit").on("mousedown", function(e){
        $("#submit").data("mouseDown", true);
      });
    
    $("#submit").on("mouseup", function(e){
        $("#submit").data("mouseDown", false);
      });
    
    0 讨论(0)
  • 2021-02-04 12:44
    A trick -
    
     $(document).ready(function() {  
    var flag = false;
         $('#eg1').blur(function() {
    flag = true;
          if(!($("#SubmitBut").click())) {
    if(flag) 
       return false;            
     //do something
          }
         });
        });
    
    0 讨论(0)
  • 2021-02-04 12:48

    Update:

    $('input[type="submit"]').mousedown(test);

    Have a look at this fiddle JSFiddle to address your problem. Use the console to view the events triggered and suppressed after specific actions are performed.

    You should suppress the event handler that is bound to the text when click or submit is performed.

    0 讨论(0)
提交回复
热议问题