• 締切済み

cgiで作成したhtmlページの入力ボックス位置を指定するには

お世話になります。 cgiで複数項目を入力させるページを作成しています。 作成されたページは普通最初の(先頭の)入力ボックスに カーソルが位置づけされますよね。 これを何個目かの入力ボックスへ位置づけしたいのです。 いわゆるtabindexみたいな指定がしたいのです。 例えば、  入力項目1  入力項目2  入力項目3  入力項目4  入力項目5  と在るようなページで、  ページがロードされたときに始めから入力項目3に  カーソルを位置付けしたいのです。  表示上入力項目の順は上記のように1~5の順としたいのです。 わかりにくいかも知れませんが宜しくお願いします。

  • Perl
  • 回答数1
  • ありがとう数1

みんなの回答

回答No.1

ブラウザの立場からすれば,自分の手元に来る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要素を用いないこと。

nagahaha
質問者

お礼

早速、有り難うございました。 まず、 >人によってはこうしたフォーカスの移動が余計なお世話に思う人もいる(俺も賛成。tabindexあたりだとうれしく思うんだけど)ので,使うときは良く考えてから使うこと。 ですが、 これは一般に公開するものではなく、 私が管理者として個人的に使用するものです。 よってご心配なく。 次に、 >document.getElementById("name").focus(); ですが、 これは別の方(cgiカテゴリ)に教わり、 パソコンでは出来ることが確認できたのですが、 携帯電話でもやりたかったため、 このperlカテゴリで質問させていただきました。 詳しくは分からないのですが、 携帯電話ではjavascript、もしくはxhtmlが使えないのではと思い、 perl言語のみで書けないものかと質問した次第です。 以上、有り難うございました。

関連するQ&A

  • 作成したページの入力位置を指定するには

    お世話になります。 cgiで複数項目を入力させるページを作成しています。 作成されたページは普通最初の(先頭の)入力ボックスに カーソルが位置づけされますよね。 これを何個目かの入力ボックスへ位置づけしたいのです。 いわゆるtabindexみたいな指定がしたいのです。 例えば、  入力項目1  入力項目2  入力項目3  入力項目4  入力項目5  と在るようなページで、  ページがロードされたときに始めから入力項目3に  カーソルを位置付けしたいのです。  表示上入力項目の順は上記のように1~5の順としたいのです。 わかりにくいかも知れませんが宜しくお願いします。

    • ベストアンサー
    • CGI
  • 入力項目にカーソルの位置づけをしたい。

    VB初心者です。VB6.0でプログラムを作成しているのですが、 初期画面の最初の入力項目に立ち上げた時にカーソルを位置づけしたいのですがどうすればよろしいでしょうか。 宜しくお願いします。

  • ACCESSでコンボボックスで入力しないとき

    ACCESS2000を使用しています。 コンボボックスを使用しているのですが、コンボボックスの中から選択して入力したのか、ダイレクトに入力したのかを区別するということは出来るのでしょうか。 コンボボックスとして作成した項目のところに、コンボボックスから連続して複数の値を取得する ということをしています。 つまり、コンボボックスの中に    1111    222    333333 とあるとすると  2221111 という項目にしたいというときです。 上記の質問は 間違って 作成したとき 2221111 を 後ろの1111を削除して 222に戻したい としたいときのことです。  よろしくお願いいたします。     

  • excel リストボックスを使った入力について

    excelにリストボックスを使って、複数の入力を一括で行いたいと考えています。 添付画像のように、横並びに入力する方法、縦並びに入力する方法があるのですが、 番号順に入力を自動で行う手順を作成している段階で詰まっております。 考えとしては アクティブのセル(番号1)から、リストボックスを起動し、for nextを使って順に入力 リストボックスで一度入力されたものは、Selectedコマンドにてfalseとし、 次の入力(番号2)に進むようにする。 それぞれ、3、6の入力後、次の行(列)の1の同行(同列)に移動する。 この3、6の位置で行列が切り替わるようにプログラムを組む方法で詰まっております。 なお、入力するセルの個数につきましては、最低1個、最大で9個となり、変化します。 アドバイスいただければと思います。また、別法でも構いません。 よろしくお願いします。

  • コンボボックスの選択後のカーソル位置について

    VB6でプログラムを作成しています。 コンボボックスのリストから選択後のカーソル制御について質問です。 コンボボックスのリストから選択後に選択したものが全選択となり カーソルが文字列の最後尾に移動してしまいます。 文字列よりコンボボックスの幅が小さい場合にカーソルが最後尾に移動すると表示が先頭からの表示になりません。 選択後にコンボボックスの表示が選択したものの文字列が先頭から表示 されるように制御したいのですが。 どのように制御したらよいか、知っている方教えてください。

  • CGI チェックボックス

    CGI チェックボックス kentさんのmsgenq v1.81でチェックボックスを使いたいと思っています。 プルダウン(初期)からチェックボックスに変更するため 以下の変更を行いました。 このQ&Aを参考に http://www.kent-web.com/support/old/61/0412.html 変更前スクリプト http://myangus.net/1.txt 変更後スクリプト http://myangus.net/2.txt 変更後ですが チェックボックスを表示することができましたが Q&Aと同じ状況(複数にチェックをした場合、先頭のチェック項目のみが結果に反映し、先頭以降のチェックは無視される状況)です。 Q&A通り修正したいのですが バージョンが異なることと自身の知識不足のため どこを修正すればよいのかわかりません。 kentさんのQ&Aにて質問させていただきましたが よい回答が得られなかったため こちらで質問させていただきました。 Q&Aの回答では、この辺りを修正しているようですが どうなのでしょうか・・・ http://myangus.net/3.txt どなたか教えていただけないでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • SSIを利用して、同じCGIを複数のページで呼び出せますか

    CGIプログラムをSSIから呼び出して使うことを考えています。 具体的には、サイト内検索CGIをSSIで呼び出すようにして、複数のページに検索用のテキストボックスとSubmitボタンを置きたいのですが、このような一つのプログラムを複数のページから呼び出して動かすようなことは出来ますか。

    • ベストアンサー
    • CGI
  • チェックボックスの入力チェック

    フォームメール用のCGIを作成しているのですが、チェックボックスの入力チェックをCGIでおこないたい場合、どのようにすればよいのでしょうか? 複数選択可で1つも選択されていない場合エラーメッセージを出すようにしたいと思っており、チェックボックスには1個づつ個別の変数を用意しています。 if ($name eq "") { print "Content-type: text/html;charset=euc-jp\n\n"; print "お名前を入力してください。"; exit(0); } テキストボックスはこのように入力チェックをおこなっています。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • テキストボックス内への入力がうまくいきません。                            

    ワードで文中に画像を入れ「テキストの折り返し」で「四角」「外周」にしても、文字の一部とと画像がかぶってしまいます。また、テキストボックスを作っても、カーソルの位置がボックスからはみ出ますので、1段開けてから入力しなくてはなりません。宜しく御願いいたします。 ワードは2003です。

  • CGIから別の隠しページへのリンクを作成したい

    CGIにてログインページを作成しました。 http://・・・・/cgi-bin/login.cgi login.cgiには認証に成功したらsecret.cgiに飛ぶという風にかかれています。 認証に成功すると確かにsecret.cgiが開きます。(ちなみにsecret.cgiはもともとsecret.htmlだったファイルのファイル拡張子をcgiに変えただけのもの) --ここから本題です。 secret.cgiから自分のページ内の別のページに飛びたい場合、具体的にいうとsecret.cgiをTOP画面とした場合、日記等の画面を表示したい場合、日記ページのファイル名がdiary.htmlとかだと、InternetExplorerなどでURLをhttp://・・・/cgi-bin/diary.htmlと入力すればログイン画面を通らずとも直接見れてしまいますよね?この場合、secret.cgiから開きたいdiaryページもsecret.cgiと同様隠しページとするにはどうすればよいのでしょうか? 1.diaryページを隠しファイルにする方法 2.secret.cgiからのdiaryページへのリンクの書き方 以上2点、ご返答よろしくお願いします。

    • 締切済み
    • CGI

専門家に質問してみよう