0

こんにちは、タペストリー ページで奇妙な問題に直面しています。

ページには 3 つのフィールドがあります。
1 つ目 – 選択ボックス -> tabindex は 1 で t:validate="required"<br> 2 つ目 – textfield -> tabindex は 2 で t:validate="required"<br> 3 つ目 – textfield -> tabindex は 3 で t: validate="必須"</p>

私のページがロードされると、デフォルトのフォーカスは2番目のテキストフィールドにありますが、タブインデックスに従って選択ボックスにある必要があります。

この問題を解決するために、tml ページで以下のスクリプトを使用しました。

<script type="text/javascript">
   Event.observe(window, 'load', function() {document.getElementById('id').focus();});
</script>

ページの読み込みフォーカスがテキストフィールドから選択ボックスに移動すると、彼はかなりうまく機能しますが、テキストフィールドにエラーバルーンがポップアップします。

4

3 に答える 3

1

最後に私は答えを得ました。

これがワンライナーソリューションです。フォームコンポーネントに autofocus="false" を入れるだけで、うまくいきました。

デフォルトでは autofocus 値は true で、フィールドにフォーカスを置くページは特定の基準に依存し、場合によっては奇妙な動作をします。

詳細については、以下のリンクをご覧ください。 http://tapestry.apache.org/forms-and-form-components-faq.html

于 2013-06-20T05:47:37.997 に答える
1

Formコンポーネントのautofocus属性を見てください。

"true (デフォルト) の場合、カーソルをフォームに配置するために JavaScript が追加されます。フォーカスを受け取るフィールドは、エラー、必須、または存在する最初のレンダリングされたフィールドです (この優先順位で)。 "

JavaScriptSupport.autoFocus(...)にも興味があるかもしれません

于 2013-06-19T13:09:58.913 に答える
0

<script>インラインを使用してウィンドウのロードイベントをリッスンすることが原因である可能性が最も高いと思います。代わりに、JavaScriptSupport を介してスクリプトを起動してみてください。LATE の InitializationPriority を指定する必要がある場合があります。

選択ではなくテキストフィールドに焦点を合わせている理由はまだわかりませんか?

于 2013-06-19T13:43:07.937 に答える