2017-10-13 54 views
0

SAPUI5アプリケーションでは、フォーカスを失うページヘッダに入力フィールドがあります。SAPUI5アプリケーションの入力項目のフォーカスが失われる

これについて詳しく説明します。ユーザーがいくつかの値を入力する最初のビューがあります。値を受け入れると、アプリケーションは次のビューに進みます。

私たちがしたいことは、そのビューの入力フィールドにフォーカスを設定することです。

jQuery.sap.delayedCall(500, this, function() { 
    this.getView().byId("idInput").focus(); 
}); 

これは、私たちの最初のビューでは問題なく動作します。以下のビューでは、フォーカスが正しく設定されているが、すぐに失われていることがわかります。

どのように入力フィールドに焦点を当てることができますか?

参照:助け何 はSAPUI5 Set Focus on Input Field

+0

フォーカスの次の目標は何ですか?私は入力によって失われた後、ページ上のどの要素がフォーカスを受け取るのかを意味しますか?私はsap.m.Pageコントロール内のすべてのコンテンツを「戻る」ボタンで置き換えて、通常この「戻る」ボタンはデフォルトでフォーカスを受けていると考えています。 –

+0

まず、フォーカスがどこに向かうのかわかりませんでした。そして、それはヘッダーのボタンではなかった。これは、非表示のマスターページを持つSplitAppです。 'document.activeElement'を使うと、フォーカスがマスターページのリストにジャンプすることがわかりました。 –

+0

実験のように、タイムアウトを長くすると、フォーカスが設定されますか? –

答えて

0

遅延を増加させることでした。 onAfterRenderingを使用すると、初めて2番目のビューに移動するときにのみ動作します。

+0

はい、フォーカスを設定します'onAfterRendering'は、ビューがレンダリングされるときに一度しか動作しません。ただし、ユーザーが後方をナビゲートすると、ビューが再レンダリングされなかったため、フォーカスは再び設定されません。 – boghyon

+0

また、 'delayedCall' /' setTimeout'は '0'よりも高いmsで避けてください。代わりに、[afterShow'](https://ui5.sap.com/#/api/sap.m.NavContainerChild/events/AfterShow)、['afterOpen'](https://など)などの適切なイベントを使用してください。 ui5.sap.com/#/api/sap.m.Dialog/events/afterOpen)、 'after *'、...は、コンテナとして使用されるコントロールに応じて異なります。例えば。 NavContainerをお持ちの場合:https://stackoverflow.com/a/48559689/5846045 – boghyon

関連する問題