2012-10-15 102 views
0

我想使用if语句来确定提交哪个按钮/文本框。例如在firefox/IE/Opera中,当我点击标记为submitNameSearch的按钮时,以下代码总能返回true;如何在chrome中获取当前活动元素?

$(document.activeElement)[0] === $("#submitNameSearch")[0] 

但是,当我在chrome/safari中测试我的代码时,返回值为false。

请问我是否做错了什么?

非常感谢您的帮助!

回答

4

如果它的点击触发的,你为什么不只是做:

$('button').on('click', function() { 
    if (this.id=='submitNameSearch') { 
     //do something 
    } 
}); 

,看看哪些因素已焦点前,焦点转移到点击的按钮,你总是可以做:

var activeElm = null; 

$('button').on({ 
    mousedown: function() { 
     activeElm = document.activeElement; 
    }, 
    click: function() { 
     if (activeElm&&aciveElm.id=='submitNameSearch') { 
      activeElm.focus; //returns focus 
     } 
    } 
}); 
+0

感谢您的帮助,但不仅仅是通过点击触发,例如,当用户输入文本框时。 – ssgao

+0

我不明白吗?当用户点击输入某种文本输入时,肯定具有焦点的元素与输入键被按下的元素是相同的元素? – adeneo

+0

哦,我明白了,对于混淆抱歉,是在输入框中输入确实具有预期的行为,但我可以问问为什么比较不起作用?如果我可以将两个输入框和提交按钮处理程序放在一起而不是单独的函数中,那将会更好。 – ssgao