IEでのjavascript変数名の注意点
最近は開発用のブラウザでは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変数名として使わない」という開発ルールを追加しようと思います。
ご意見、ご質問はこちらから
(ガイドミーメンバー登録が必要です)
(ガイドミーメンバー登録が必要です)