2

これが重複している場合は申し訳ありませんが、私の質問に対する答えが見つかりません。すでに回答されている場所がわかっている場合は、リンクを送ってください。

jquery を使用して、関数をテキスト ボックスの onblur イベントにバインドしています。目的は、フォーカスがテーブル内のテキスト ボックスを離れたときにのみポストバックをトリガーすることtblUserDetailsです。テキストボックスがフォーカスを失った場合:

  • IE では、新しくフォーカスされた要素は、新しく選択されたテキスト ボックスです。
  • Chrome では、ドキュメントは 2 つのテキスト ボックスの間でフォーカスされる$(document.activeElement)ため、新しく選択されたテキスト ボックスを指すことはありません。

IE では動作しますが、Chrome では動作しない私のコードは次のとおりです。

SaveNetworkDetails: function () {

    // Trigger the blur event when one of the textboxes loses focus
    $("[id$=tblUserDetails]").find('input[id*="txt"]').blur(function (e) {

        // Check if the new focused element is among the textboxes
        if ($(document.activeElement).parents("[id$=tblUserDetails]").length == 0) {
            // Trigger postback
        }
    });
}

ぼかしイベントにバインドされた関数で、Chrome で新しく選択されたテキスト ボックスを見つけるにはどうすればよいですか?

よろしく、

ジル

4

1 に答える 1

1

ここでの小さな誤解:.blur()は blur イベントをトリガーしません。関数を blur イベントにバインドします。つまり、ぼかしが発生したときにトリガーされる関数を設定します。

おそらく、その誤解が問題の根本的な原因です。

アップデート

質問を読み直しましたが、あなたが達成しようとしていることがわかります。あなたのテキストは、プログラムでぼかしをトリガーしていると思わせますが、問題は、クロムでは、コントロールが離れたときにドキュメントが一時的にフォーカスされるという事実です。

最初の入力のぼかしでポストバックをトリガーする代わりに、次の入力のフォーカスでポストバックをトリガーする必要があります。あなたのコードで私が見たところによると、この変更はそれほど重要ではありませんが、問題は解決します。

于 2012-10-16T14:30:48.233 に答える