- PR -

CGI(Perl)でカーソル自動セット法

投稿者投稿内容
九州の関西人
常連さん
会議室デビュー日: 2004/07/20
投稿数: 48
お住まい・勤務地: 長崎県
投稿日時: 2008-02-26 11:53
こんにちは、ここでよいのかわからなかったのですがお助けを。
いま、カレンダー形式のスケジュール表をCGIでつくったのですが
パスワード入力画面(ただ入力フィールドがひとつあるだけ)=添付URL参照
で、入力フィールドに自動的にカーソルをセット
しておきたいのですが、これがなかなか調べてもわからず
案外、インターネットにものっていませんでした。
簡単なことなんですが、どうしても方法がわからないので
CGIプログラムでどのように記述すればいいのか
ご教授ください。お願いいたします。
Java僧
ぬし
会議室デビュー日: 2003/11/06
投稿数: 261
投稿日時: 2008-02-26 15:48
Javascriptでやるのが定石かな?
googleのトップページみたいな動きにしたいのですよね?
googleトップページのHTMLソースを読んでみてください。
九州の関西人
常連さん
会議室デビュー日: 2004/07/20
投稿数: 48
お住まい・勤務地: 長崎県
投稿日時: 2008-02-26 16:40
早速のお返事ありがとうございます。
そのとおりです。
で、ソース表示で参照しましたが
うーん、わかりません。
どこがその役を担っているのでしょうか?
ヒントでももらえないでしょうか?
dodo
ベテラン
会議室デビュー日: 2004/05/12
投稿数: 99
お住まい・勤務地: 東京都渋谷区
投稿日時: 2008-02-26 18:08
"JavaScript" "カーソル"でぐぐって、4番目の、
http://www.nishishi.com/javascript/2007/form-focus.html
が参考になると思います。

Googleのソースでは、"function sf(){document.f.q.focus()}"という関数を、
onloadで呼び出すことで、カーソルを設定しています。
九州の関西人
常連さん
会議室デビュー日: 2004/07/20
投稿数: 48
お住まい・勤務地: 長崎県
投稿日時: 2008-02-26 21:49
dodo三、お返事ありがとうございます。
早速、ためしてみようと思います。
ただ、JavaScriptじゃなかくPerlで書いてあるので
ちょっと厄介??
HTMLはわかっても、Perlは初心者なもので、
どう書けばいいやら・・・
なんとか挑戦してみます。
ここまでヒントをいただければ何とか自分でがんばってみます。
ありがとうございます。
スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2008-02-26 22:10
フォーカスのセットはクライアント側の動作ですから、CGIもPerlも関係ないですよ。ブラウザが表示するのは裏が何であろうとHTML(+JavaScript)ですから。
九州の関西人
常連さん
会議室デビュー日: 2004/07/20
投稿数: 48
お住まい・勤務地: 長崎県
投稿日時: 2008-02-27 10:41
皆さんからお教えいただいているのに、出来ない自分がはがゆいです。
dodoさんの内容を参考に以下の★部分を変更し、
やってみましたが、Javascriptがうまくいかないようで
CGIエラーになります。
ソースの抜粋・・・・
print "<body><center>\n"; ★
$inpass = $in{'pass'};
if ($inpass eq '') {
print "<h4>パスワードを入力して下さい</h4>\n";
print "<form action=\"$script\" method=\"POST\">\n"; ★
print "<input type=hidden name=mode value=\"admin\">\n";
print "<input type=password name=pass size=10 maxlength=8>\n";
print "<input type=submit value=\" 認 証 \"></form>\n";
これを、以下のようにしたのですが・・・
print "<body onload="document.sampleform.pass.focus();"><center>\n"; 
・・・
print "<form name="sampleform" action=\"$script\" method=\"POST\">\n";

やはりいきなりjavascriptのメソッド?をかけないんでしょうか?
お助けを
rain
ぬし
会議室デビュー日: 2006/10/19
投稿数: 549
投稿日時: 2008-02-27 14:09
こんな感じで"をエスケープしてあげてください。

コード:
    print "<body onload=\"document.sampleform.pass.focus();\"><center>n"; 

    print "<form name=\"sampleform\" action=\"$script\" method=\"POST\">n";

スキルアップ/キャリアアップ(JOB@IT)