最近は開発用のブラウザではFirefoxをデフォルトにしているため、IEでのjavascriptの動作エラーに気づかずに後で手間取ることが多くなっています。(自分が)
最近ではフォームのsubmitボタンに画像を用いるケースが増えており、onclickでsubmitというパターンが増えている。
基本的には、以下のようにすればOKです。
<input type=”image” src=”[ボタン画像]” border=”0″ onClick=”this.form.submit();”>
ここでハマったパターンを紹介します。
先に述べたように私はFirefoxで開発を行っているのですが、form内の変数”delete”をsubmit時に1をセットして、画面遷移するプログラムがIE6では動作しなかったのです。(下記参照)
<FORM action=”[CGI名]” method=”post”>
<input type=hidden name=delete>
– -[中略] —
<input type=”image” src=”[ボタン画像]” border=”0″ onClick=”this.form.delete.value=1; this.form.submit();”>
– -[中略] —
</FORM>
色々調べて何が原因だったかというと、どうやらCGI変数名の”delete“がjavascriptの予約語にあったため、IEで変数”delete“に1がセットされず動作しなかったようなのです。変数名を”delete1″としたら動いたもので。。
「javascriptの予約はCGI変数名として使わない」という開発ルールを追加しようと思います。