1

フォームへの入力が間違っていた場合に ajax リクエストを実行した後、このvalidationTextBox をフォーカスして、問題を示すインジケーター メッセージを表示しようとしています。

コードは次のとおりです。

dijit.byId("passwordField").focusNode.focus()

フォーム要素は、前述のように validationTextBox です。

私をさらに混乱させているのは、以前の dojo 1.5 では、このコードは単純dijit.byId("passwordField").focus()で、問題なく機能していたことです。どうすればこれを修正できますか?

私も試しました:

require(["dijit/focus"],function(focusU){ 
  focusU.focus(dojo.byId("ID"));});

しかし、これもうまくいきません。

4

4 に答える 4

2

dijit.widget.focus() が失敗した場合、_FocuxMixin は起動時に正しくロードされません。

任意の dijit.form.Type を使用すると、次の方法でフォーカスを正常に取得できるはずです。

dijit.byId('ID').focus();

DOM イベント フォーカスとウィジェット フォーカス処理を混同していると思います。発砲した場合、どのブラウザでもwidget.focusNode.focusメッセージの恩恵を受けることはありません。ValidationTextBox

于 2012-07-09T15:44:45.180 に答える
0

フォームタグで次のようなことを試してみてください:

<script language="javascript" type="text/javascript">
        Sys.Application.add_load
                (
                function () {
                    window.setTimeout(focus, 1);
                }
                )
        function focus() {
            if (document.getElementById('txtComm1') != null) {
                if (document.getElementById('txtComm1').disabled != true) {
                    document.getElementById('txtComm1').focus();
                }
            }
        }      

    </script>
于 2012-07-09T03:09:12.143 に答える
0

フォーム フィールドが 内にあるdijit/Dialog場合、Dialogは自動的に最初の入力にフォーカスします。この動作を無効にするには、次のように設定します。

autofocus: false

ダイアログで、その後、

widget.focus();

正常に動作するはずです。

于 2016-02-05T11:31:00.687 に答える