簡體   English   中英

如果單擊提交按鈕,則阻止執行onblur代碼

[英]Prevent onblur code to execute if clicked on submit button

通過以下代碼,我希望僅在onblur事件不是由於提交按鈕上的“ONCLICK”引起時,才會在元素id =“eg1”的“ONBLUR”上“DO SOMETHING”。

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

對於Eg:如果用戶更改“eg1”文本字段的值並單擊下一個文本字段,則必須運行DO SOMETHING代碼,但是如果用戶更改“eg1”字段的值,然后單擊SUBMIT按鈕,然后DO SOMETHING代碼不能運行。

這是正確的方法嗎? 請指導。

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);
  });

更新:

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

看看這個小提琴JSFiddle來解決你的問題 使用控制台查看在執行特定操作后觸發和抑制的事件。

您應該在執行clicksubmit時禁止綁定到文本的事件處理程序。

A trick -

 $(document).ready(function() {  
var flag = false;
     $('#eg1').blur(function() {
flag = true;
      if(!($("#SubmitBut").click())) {
if(flag) 
   return false;            
 //do something
      }
     });
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM