我有两个项目
item1 是文本框
item2 是提交按钮
现在 item1 在jquery中有模糊事件。在那个模糊事件中,我已经验证并基于该验证,如果失败,用户将有确认消息。
因此,如果用户按是,他可以继续进行
如果用户按否,则文本框将为空白并需要再次输入详细信息。
所以现在我的问题是,如果用户在 item1中输入详细信息并直接点击item2 ,则按钮的提交事件被拒绝,而item1的模糊事件被调用。因此,第一次被拒绝,用户必须按下第二次按钮(这是问题)。
因此,如果用户点击item2,如何知道item1的模糊事件,我可以继续触发item2的点击事件。
答案 0 :(得分:3)
考虑这段代码
var $item1 = $('#item1');
var $item2 = $('#item2');
$item1.on('blur', function (oEvent) {
if ($item2.is(oEvent.relatedTarget)) {
// your blur is caused by click on $item2 a.k.a submit button
} else {
// your blur is caused by smth else
}
});
它会检查焦点移动的位置,您可以添加一些特定的布尔标志,以便稍后在提交处理程序中使用,或者以某种方式更改您的验证。
请注意,模糊事件是失去焦点的事件,焦点可能不仅因为点击而消失,还因为例如标签导航。
<强>更新强>
添加了一个jsfiddle http://jsfiddle.net/DbjQc/
尝试聚焦文本输入,然后单击其他位置。之后尝试再次聚焦文本输入,然后单击提交按钮 - 您将看到行为如何变化。