1

拡張ページダイアログボックスを使用してフォームを検証しています。ユーザーが入力を修正する必要がある場合、エラーメッセージを含むダイアログボックスをポップアップします。

ダイアログボックスには、ダイアログボックスを閉じ、修正が必要なフィールドにフォーカスを設定する[OK]ボタンがあります。

 var ef = dojo.byId(errorField);
 ef.focus();

これは、以下を除いてうまく機能しています......

フォームの上部に浮かぶボタンのグループと他のコンポーネントの束があります。

これらは、次のCSSのパネル内にあります。

 .PNCToolBar2 {
position:fixed;
top:68px;
left:0px;
width:100%;
height:40px;
color:#fff;
background-color:#F2F2F2;
padding-top:6.0px;
padding-left:15.0px
 }

何が起こっているのかというと、失敗したフィールドが「ボタンバー」の下で上にスクロールされると、ブラウザは少しスクロールしてボタンに焦点を合わせようとしますが、十分ではありません。ユーザーがフォーム上でブラウザをスクロールした方法によっては、エラーのあるフィールドのすべてまたは一部がボタンバーによって非表示になっている場合があります。

フィールドがブラウザウィンドウの上部のバーの下にあるかどうかを最初に確認してから、フィールドを表示する場合は少しスコールする方法はありますか?もしそうなら、どのように?

4

2 に答える 2

4

試す:

dojo.window.scrollIntoView(ef);

efで表されるDOMノードが現在画面に表示されていない場合、Dojoはスクロールするのに十分なだけスクロールします。

この方法の詳細

于 2012-11-07T12:44:27.003 に答える
0

javascriptを使用すると、scrollTo()メソッドを使用できます http://www.w3schools.com/jsref/met_win_scrollto.asp

于 2012-11-07T06:22:50.523 に答える