2009-05-29 15 views
0

フォームのあるiframeを含むサイトにページがあります。これを変更することはできませんが、親ページとiframeのページで実行されるすべてのJSを完全に制御できます。iframe内のフォーム要素間をタブで移動できないのはなぜですか?

私の問題は、iframeのドキュメントに焦点を当てたフォームフィールドがある場合、次のフィールドにタブすると、フォームの次のフィールドではなくブラウザのアドレスバーにまっすぐにカーソルが送られることです。各フィールドのtabindexesを設定しても効果はありません。

ブラウザはiframe自体をページ内の要素の1つとして扱っていますが、タブイベントをキャプチャしてフォーカスをiframe内部に保持する方法があるかどうかは疑問ですその子要素を持つ。

以前にこの問題に遭遇したことがありますか?

それはあなたを助けること

ないが、レイアウトのようなものです:

+-------------------------------------------+ 
| Parent page        | 
|   +-------------------------------+ | 
| N  | iframe      | | 
| a  |        | | 
| v  | Has about 50 fields that I'd | | 
| i  | like to be able to tab between| | 
| g  |        | | 
| a  | But I can't! Help!   | | 
| t  |        | | 
| i  +-------------------------------+ | 
| o          | 
| n          | 
+-------------------------------------------+ 

ひとつのアイデアがしようとするとキャプチャのiframe内のKeyDownイベントを、タブまたはシフト+タブをチェックし、その後再び焦点を合わせることでしたiframeが、フォーカスを失う前にどこのフィールドを知っているかという問題があります。フォームフィールドにJSとtabindex属性を使用して、次のフィールドを動的にフォーカスする方法はありますか?私は次のベンチャーどこ多分それはだ...

更新:おそらく私が欠けていることにもシンプルなものがあります。たとえば、http://www.studentloan.comのログインボックスはiframeであり、これらのフィールドの間にタブを置くことはできます。多分私のJSの他の何かが問題の原因です。

アップデート2:私は、スタンドアロンのページとしてブラウザにちょうどiframeのドキュメントをロードしようと、私はまだタブできません。私はそれがドキュメントの焦点を失う原因となっているJSのどこかでやっていることだと思う。見つけたら私の解決策を掲載します。

アップデート3:

問題は、AjaxのコントロールTookitのModalPopupExtenderによって引き起こされます。私は、Webサービスを呼び出した後にローディングメッセージとして1つを使用しています。コールバックメソッドが呼び出されると非表示になります。

モーダルポップアップが初めて表示されて非表示になるまで、フィールド間を移動できます。その後、そのフォームは決してその焦点を維持することはできません。私は理由を調査しており、理由を知ることができれば回答を投稿します。

ありがとうございます!

答えて

1

私はあなたとほぼ同じ問題を抱えていました。 解決策を探していたら、私はこの問題を引き起こしていたものを発見できるこのWebを見つけました:modalpopupextender。 本当の問題が分かったら、解決策を見つけるのはかなり簡単でした。ここにあります:http://forums.asp.net/t/1191142.aspx

私はこの問題を私のために理解するのを助けてくれることを願っています。

+0

あなたは正確です。私は、うまく動作するMPEの束を持って、ちょうど1つの問題のあるものがあった(それはフォームフィールドを持っていなかった - それは問題の一部だったのだろうか)。これを投稿するために戻ってきてくれてありがとう! –

0

私はajaxを使用して想像するのが問題ですか?

もしそうでなければ、あなたのフォームは現在のページの一部であるため、iframeタブの問題はありません。

+0

アプリケーション全体は、AJAXと.NET 3.5のWebサービスによって強化されています。私が欲しいのは唯一変えることができないのは、iframeの使用です。面白いのは、私が前に働いていたタブを覚えていることです。 –

関連する問題