Guide Me! ... ガイドミーブログ

2008/8/25 月曜日

IEでのjavascript変数名の注意点

カテゴリー: 技術関連 — admin @ 17:57:24

最近は開発用のブラウザでは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変数名として使わない」という開発ルールを追加しようと思います。

次ページへ »

Guide Me!