問題の原因がJavaScriptの範疇なのか(JSなのかHTMLなのかIEなのか
CSSなのかそれとももっと別の部分なのか)どうかも分かりませんが、
以下のようにすると(恐らくIEのバグ?によって)IEでEnterキーで
サブミットできなくなります。
(テストのために重要な部分だけPerlで簡略化して出力しています)
#!perl
print "Content-type: text/html\n\n";
print <<"HTML";
<body onload="document.form1.style.display = 'block'; document.form1.input0.focus();">
<form name="form1" style="display: none;">
HTML
for(my $i = 0; $i < 50; $i++) {
print qq(<input type="text" name="input$i"><br>\n);
}
print <<"HTML";
<input type="submit">
<input type="reset">
</form>
</body>
HTML
概要
1. 画面外にはみ出す量のフォーム内容をdisplay: noneしてから
JavaScriptで表示します。
2. フォームにフォーカスを与えてEnterキーを押しても反応しません。
3. display: noneしなければEnterキーが効きます。
4. 一度画面内にサブミットボタンを表示させると効くようになりますが
サブミットボタンを画面から外した後に更新をかけるとまた効かなく
なります。
4. IE 以外では正常動作するようです(テストしたIEのバージョンは
6.0 SP2)。
説明が下手で分かりにくいかもしれませんがこれの原因の詳細と
対策はありませんか。
No.1ベストアンサー
- 回答日時:
display:none;をwidth:0; height:0; overflow:hidden;にしてはどうでしょう。
この回答への補足
ありがとうございます。
少々惜しいです。
元々は、JavaScriptが有効になっていない場合は<NOSCRIPT>でエラーを
出してフォーム自体を表示したくなかったため、CSSで非表示にして
onloadですぐに表示するようにしています。
しかし、overflowを使用すると確かにEnterでサブミットは効きますが
JSが無効になっているときに隙間が空いてしまいます。
(スクロールバーが表示されたりその前後の内容が離れて表示されます)
フォームを全部JSで出力するという手もありますが、JSではPerlの
ヒアドキュメントみたいなことができないはずなので面倒で、
どうしようかと思っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
formで特定のinputを送信しない...
-
子windowsからsubmit()後にclos...
-
JSONで文字列が長い時
-
Application.ScreenUpdating = ...
-
16進の10進変換について
-
文字の横にプルダウンを表示さ...
-
回数を指定しないで空白行まで...
-
問題作成のWebアプリの作り方を...
-
ACCESS テキストボックスを隙...
-
pythonで演算子を変数に代入す...
-
FindFirst を複数条件で検索
-
【至急!!!】python言語で本を見...
-
<SELECT>タグの折り返し
-
構造体の各データの表示につい...
-
【C#】数値の範囲チェックについて
-
C言語のflagの使い方が分かりま...
-
VBAでPDFのコピーとリネームを...
-
Use of uninitialized value ---
-
C言語について
-
メモリをアドレスを直接指定し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
formで特定のinputを送信しない...
-
子windowsからsubmit()後にclos...
-
ホームページビルダーのメール...
-
javascriptでCGIを実行するには
-
if文を入れるとcgiが動きません...
-
テキスト入力後、エンターを押...
-
javaで取得可能な環境変数の値...
-
メール送信フォームつきのポッ...
-
Application.ScreenUpdating = ...
-
JSONで文字列が長い時
-
どちのほうがすきですか?
-
Pythonでターミナルに文字を出...
-
16進の10進変換について
-
セレクトメニューで2つの項目...
-
実行時エラー 3020の対策
-
文字の横にプルダウンを表示さ...
-
FindFirst を複数条件で検索
-
パイソンのクラスについて
-
<SELECT>タグの折り返し
-
「*:*」って何を意味するのでし...
おすすめ情報