如果单击提交按钮,则阻止执行onblur代码

Pal*_*jaa 10 javascript jquery onclick onblur

通过以下代码,我希望仅在onblur事件不是由于提交按钮上的"ONCLICK"引起时,才会在元素id ="eg1"的"ONBLUR"上"DO SOMETHING".

    $(document).ready(function() {  
     $('#eg1').blur(function() {
      if(!($("#SubmitBut").click())) {
             //do something
      }
     });
    });
Run Code Online (Sandbox Code Playgroud)

对于Eg:如果用户更改"eg1"文本字段的值并单击下一个文本字段,则必须运行DO SOMETHING代码,但是如果用户更改"eg1"字段的值,然后单击SUBMIT按钮,然后DO SOMETHING代码不能运行.

这是正确的方法吗?请指导.

Dio*_*ode 32

blur元素的click事件在另一个事件发生之前触发.因此,一种方法是使用mousedownmouseup事件来切换标志,因为mousedown一个元素的blur事件在另一个元素的事件之前触发.

$("#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);
  });
Run Code Online (Sandbox Code Playgroud)

  • 这节省了我很多时间,谢谢:-) (2认同)