
PHP、XHTML、CSSで応募フォームの作成をしております。
PHPとHTMLは別ファイルで作成しており、PHPにアクセスしてそのPHPが指定されたテンプレートを読みにいくような流れとなっております。
HTMLもPHPも完成して、応募フォームとして一通り動くようになったのですが、新たにフォーカス機能を追加したいということになりました。
具体的には、応募フォームの一番最初のテキストエリアに、ページ読み込み時にフォーカスを当てたいという内容です。
そこで、フォーカス機能用のJavaScriptを別ファイルで新たに作成し、動きを確認してみたところ上手く動きません。
HTMLとJavaScriptのソースは下記の通りです。
====================================================================
■HTML(全て書くと長くなってしまうので、簡略させていただきます)
<script type="text/javascript" src="$path_top_js/focus.js"></script>
<body onLoad="Focus()">
</head>
<form name="top" action="index.php" method="POST" onReset="return false;" onSubmit="return false;">
<input type="hidden" name="USER_ID" value="$USER_ID">
<INPUT size="20" type="text" name="USER_ID" value="$USER_ID" MAXLENGTH="10">
</form>
</body>
■JavaScript(focus.js)
function Focus(){
document.top.USER_ID.focus();
}
====================================================================
「フォームのname="USER_ID"というテキストエリアにフォーカスを当てる」という内容になります。
なぜフォーカスが当たらないのか、原因は予想がつくのですが、どう解決していいのか分かりません。
多分、フォームの値を保持するために記述しているhiddenタグ
<input type="hidden" name="USER_ID" value="$USER_ID">
にJavaScriptのフォーカスが当たってしまっているみたいです。(フォーカスが当たっていると思われるhiddenタグは見ることができません)
試しにhiddenタグを外してみたところ、JavaScriptで指定したテキストエリアにフォーカスが当たっていることを確認しました。
「応募フォーム」ということで、ページ遷移した際にもフォームに入力した値を保持しておくためにhiddenタグは外したくないのですが、フォーカス機能もちゃんと動くようにしたいと思っております。
解決方法が分かる方いらっしゃいましたら、ご教授の程お願い致します。
No.1ベストアンサー
- 回答日時:
同じフォーム内の複数のインプットに同じnameを与えることに問題があるような気がしますが…
hiddenのほうを USER_ID_HIDDEN などとでも名前を変えてあげればよさそうですけれど?
そのまま、強行にやるなら、現状のブラウザ(HTML 4.0)であれば
document.getElementsByName("USER_ID")[1].focus();
または、
document.forms[0].elements["USER_ID"][1].focus();
(↑当該formが最初のformと仮定しています)
などで、一応通じるとは思いますが、将来的にどうなるかはよくわかりません。
fujillinさん
迅速なご対応、ありがとうございます。
今までこうやって作ってきたので、同一テンプレート内に同じnameがあることに違和感がなかったのですが、バリデートをかけたときにそこが減点されていたということもあり、仰る通りだと思います。
hiddenの方に"_HIDDEN"と追加してあげた名前にして、PHPを修正して対応することができました。
JavaScriptの方を修正することも考えましたが、"将来的に"という言葉が気になったので、こちらでの対応はやめておきました。
ご丁寧な回答を、どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
絶対パスと相対パスについて。
-
HTML&CSS 学習本の相談
-
HTML&CSS 学習方法のお勧め
-
テーブルの行を折りたたみたい...
-
iPhoneで HTMLファイルを閲覧
-
htmlの<input type=”file”>でア...
-
webディベロッパーについて詳し...
-
このサイトのカテゴリのチェッ...
-
HTMLでクロス抽出したい
-
HTMLでstyleを指定するフォーム...
-
Chat GTPで、12月のカレンダー...
-
css初心者 フレックスボックス...
-
メモ帳の段落の揃え方
-
ホームページを作っていたらhtm...
-
ホームページのサイトでhtm...
-
HTML/CSSを使って写真のような...
-
レスポンシブで困っています・・
-
ホームページの制作について教...
-
GoogleSearchControlにホームペ...
-
Dreamweverは今も主流なんです...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
submitをボタン以外にするには
-
submitの処理の後別の画面を表...
-
1アクションでPOST・GET、両方...
-
リンクをクリックした時にform...
-
ラジオボタンで選択した項目に...
-
同じnameのhiddenで別々の内容...
-
mailtoでバイナリーファイルを添付
-
URL パラメータを使ってフォー...
-
長文のmailtoの使い方
-
フォーム要素以外にもname属性...
-
HTMLとPerl間のページ遷移につ...
-
ブラウザを使った入力フォーム
-
送信ボタン押下時に値が未入力...
-
ページがEnterで再起動されるの...
-
メールフォームの送信ボタンが...
-
HTML Formの属性actionは2つの...
-
<a href=**?***=***>をGET方式で
-
formタグのactionパラメータで...
-
checkboxを「変更不可」にでき...
-
ブラウザのテキストボックスに...
おすすめ情報