我有一个有焦点事件的文本框.
每当文本框失去焦点时(Tab,鼠标单击表单的任何其他部分),基于某些条件,将调用用户编写的功能,以消除警报.
每当文本框失去焦点时(Tab,鼠标单击表单的任何其他部分),基于某些条件,将调用用户编写的功能,以消除警报.
现在,我的表单也有一个按钮,填充文本框后,当我单击按钮focusOut事件的文本框被调用而不是按钮单击事件.
如何停止按钮点击时调用文本框的foucusout事件?
("$textBox").focusout(function(){ validation; alert("message"); }); ("$btn").click(function(){ ---- });
谁能帮我?
解决方法
我已将您的点击事件更改为mousedown(因此它首先触发)并使用变量来跟踪您的点击:
var buttonClicked = false; $('#txt1').focusout(function(){ if(!(buttonClicked)){ alert('BlurEvent'); }else{ buttonClicked = false; } }); $('#btn').mousedown(function(event){ alert('ClickEvent'); buttonClicked = true; });
编辑
var buttonClicked = false; $('#txt1').focusout(function(){ if(!(buttonClicked)){ // do normal focusout code. }else{ // button was clicked - dont execute some code. buttonClicked = false; } //this always executes regardless of focusout or button click var reply =confirm("Are you happy with the input?"); }); $('#btn').mousedown(function(event){ buttonClicked = true; });