- 締切済み
cgiで作成したhtmlページの入力ボックス位置を指定するには
お世話になります。 cgiで複数項目を入力させるページを作成しています。 作成されたページは普通最初の(先頭の)入力ボックスに カーソルが位置づけされますよね。 これを何個目かの入力ボックスへ位置づけしたいのです。 いわゆるtabindexみたいな指定がしたいのです。 例えば、 入力項目1 入力項目2 入力項目3 入力項目4 入力項目5 と在るようなページで、 ページがロードされたときに始めから入力項目3に カーソルを位置付けしたいのです。 表示上入力項目の順は上記のように1~5の順としたいのです。 わかりにくいかも知れませんが宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- himajin100000
- ベストアンサー率54% (1660/3060)
ブラウザの立場からすれば,自分の手元に来るHTMLが解析対象であって, それが静的なファイルであろうが,PerlやPHPやRubyやPythonで作られたプログラムで生成されたものがCGI経由で来る形であろうが,全く関係ない。 でやってみたけど, >作成されたページは普通最初の(先頭の)入力ボックスに カーソルが位置づけされますよね。 少なくとも普通のHTMLと当方のMinefieldの組み合わせでは,されない。 おそらくECMAscript等による方法で実現している。 今回掲示するXHTMLにおいてもその方法を用いているため,無効にしているユーザーには有効とならない。 人によってはこうしたフォーカスの移動が余計なお世話に思う人もいる(俺も賛成。tabindexあたりだとうれしく思うんだけど)ので,使うときは良く考えてから使うこと。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Q3677043 TestCase 1</title> <script type="text/javascript"> function init(){ document.getElementById("name").focus(); } </script> </head> <body onload="init();"> <form action="example.cgi" method="POST" enctype="x-www-urlencoded" accept-charset="UTF-8"> <dl> <dt>ダミー</dt> <dd><input type="text" id="dummy"/></dd> <dt>名前</dt> <dd><input type="text" id="name"/></dd> <dt>住所</dt> <dd><input type="text" id="address"/></dd> </dl> <p><button type="submit">送信</button></p> </form> </body> </html> プログラムによってXHTMLを生成しているなら そのソースコードに上記同様の仕組みを組み込めばよい。 (プログラムのソースコード出さないとプログラム側の修正箇所はこちらからは絶対に明示できない) #今回はその性質上form要素によってどこかに送信することを前提としてソースコードを作成したが,どこにも送信しない場合はform要素を用いないこと。
お礼
早速、有り難うございました。 まず、 >人によってはこうしたフォーカスの移動が余計なお世話に思う人もいる(俺も賛成。tabindexあたりだとうれしく思うんだけど)ので,使うときは良く考えてから使うこと。 ですが、 これは一般に公開するものではなく、 私が管理者として個人的に使用するものです。 よってご心配なく。 次に、 >document.getElementById("name").focus(); ですが、 これは別の方(cgiカテゴリ)に教わり、 パソコンでは出来ることが確認できたのですが、 携帯電話でもやりたかったため、 このperlカテゴリで質問させていただきました。 詳しくは分からないのですが、 携帯電話ではjavascript、もしくはxhtmlが使えないのではと思い、 perl言語のみで書けないものかと質問した次第です。 以上、有り難うございました。