我正在尝试使用if语句来确定提交哪个按钮/文本框。

例如,在firefox / IE / Opera中,当我单击标有SubmitNameSearch作为id的按钮时,以下代码始终可以返回true;

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


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

请问我做错了什么吗?

非常感谢你的帮助!

最佳答案

如果是点击触发,为什么不这样做:

$('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
        }
    }
});

09-28 00:34