忍者ブログ
ブログ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



新たな開発現場に入って一ヶ月・・・
プログラムを大量生産していざ試験フェーズに入ると
謎のバグに遭遇するもので(~~)

JSPで画面上のテーブル行を生成する箇所で
データが1行だけの場合にその中のフォームに
カーソルを当ててEnterキーを押下すると落ちる。。

画面上のボタンにフォーカスはあたっているが
その中のJavaScriptが動作せずにSUBMITされている模様。

デバッグしてみるとServletの処理には入ってきているが、
画面から受け渡されるリクエストが空っぽ。

2時間ハマって4年前に同様の現象に遭遇したことを
思い出した。

IEだと画面上のフォーム内にテキストフィールドが1個しかない場合に
submitボタンの情報が送られない件

これまだ直ってないのかよOTZ

IE8になっても直ってないということはMSは
仕様で押し通すつもりなんでしょうか。。。

回避策は他のサイトにあるJavaScriptでのエレメント個数把握
後のダミーINPUTを検討したが、JavaScriptがこけたり
顧客の端末でオフられてたら画面が落ちるのも嫌なのでJSPで対処しました。

<JavaScriptでやる場合>
var f = document.forms;
for(var elm, i = 0; elm = f[i]; i++) {
   var input = document.createElement('input');
   input.style.display = 'none';
   elm.appendChild(input);
}

<JSPでやる場合>
--hoge.css--
/* フィールドを透明にする */
.none {filter: alpha(style=0, opacity=0);}

--hoge.jsp--
<%
  List results = XXX;

  // ループの中ですよ
  for (int i = 0 ; i < results.size() ; i++) {
 
    // 取得件数が1件の場合ダミーのINPUTフィールドを生成
    if(results.size() == 1){
%>
  <INPUT CLASS="none" TYPE="text" VALUE="" TABINDEX="-1">
<%
    }
  }
%>
 

PR


カレンダー
08 2024/09 10
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
フリーエリア
最新コメント
最新トラックバック
プロフィール
HN:
Taiga
年齢:
44
性別:
男性
誕生日:
1980/09/02
職業:
SE
趣味:
写真・読書
自己紹介:
自然を愛するフリーのSEです。
バーコード
ブログ内検索
最古記事
P R
カウンター
忍者ブログ [PR]