首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果单击提交按钮,则阻止onblur代码执行

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

Stack Overflow用户
提问于 2013-03-04 15:12:11
回答 3查看 19.2K关注 0票数 11

通过下面的代码,我希望仅当onblur事件不是由提交按钮上的"ONCLICK“引起时,才在元素id="eg1”的"ONBLUR“上”做一些事情“。

代码语言:javascript
复制
    $(document).ready(function() {  
     $('#eg1').blur(function() {
      if(!($("#SubmitBut").click())) {
             //do something
      }
     });
    });

例如:如果用户更改“eg1”文本字段的值并单击下一个文本字段,则DO某些代码必须运行,但如果用户更改“eg1”字段的值,然后单击SUBMIT按钮,则DO某些代码不能运行。

这是正确的做法吗?请指点一下。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-04 15:37:35

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

代码语言:javascript
复制
$("#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);
  });
票数 34
EN

Stack Overflow用户

发布于 2013-03-04 15:22:42

更新:

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

看一下这个小提琴JSFiddle to address your problem。使用控制台查看执行特定操作后触发和抑制的事件。

执行clicksubmit时,应禁止显示绑定到文本的事件处理程序。

票数 0
EN

Stack Overflow用户

发布于 2013-03-04 15:33:52

代码语言:javascript
复制
A trick -

 $(document).ready(function() {  
var flag = false;
     $('#eg1').blur(function() {
flag = true;
      if(!($("#SubmitBut").click())) {
if(flag) 
   return false;            
 //do something
      }
     });
    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15196352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档