我有两个项目
item1 is textbox
item2 is submit button
现在item1有blur事件在jquery。在这个模糊事件中,我有验证,如果验证失败,用户将得到确认消息。
如果用户按下yes,他可以继续
如果用户按no,文本框将为空白,需要再次输入详细信息。
所以现在我的问题是,如果用户在item1中输入详细信息并直接点击item2, 按钮的提交事件被拒绝,item1的模糊事件被调用。所以第一次被拒绝,用户必须按第二次按钮(这就是问题所在)。
那么如何知道在item1的模糊事件,如果用户点击item2,我可以继续触发item2的点击事件。
考虑以下代码
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/尝试集中文本输入,然后点击其他地方。之后,再次尝试聚焦文本输入,然后单击提交按钮-您将看到行为如何变化。