0

ifステートメントを使用して、送信されるボタン/テキストボックスを判別しようとしています。

たとえば、firefox / IE / Operaでは、submitNameSearch as idというラベルの付いたボタンをクリックすると、次のコードは常にtrueを返す可能性があります。

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

ただし、コードをchrome / safariでテストすると、戻り値はfalseになります。

何か間違ったことをしたかどうか聞いてもいいですか?

あなたの助けをどうもありがとう!

4

1 に答える 1

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
        }
    }
});
于 2012-10-15T14:48:34.013 に答える