読者です 読者をやめる 読者になる 読者になる

ポップアップフォーム開いてそこから呼び出し元のinputやらdivを書き換えする機能を実装してたのですが、FFとかIE9ではちゃんと動いていたのにIE8の環境にリリースしたら.innerHTMLの値を設定する部分でエラーを吐いて動かないぞいと orz

実際には、元のフォームにある要素は固定で生成される要素が一つと、テーブルのtrをjavascriptで生成して作られる可変要素があって、「○○_1_address」、「○○_1_e-mail」、「○○_2_address」、「○○_2_e-mail」、と言うidになっていると。
で、参照ボタンをクリックするとjavascriptがこの「○○_1」の部分をパラメータとしてZend FrameworkのActionを呼び出して、そのActionからポップアップフォームコントローラを同じパラメータで呼び出し、その中でsmartyの変数に「○○_1」 + 「_address」を設定してsmartyjavascriptのgetElemetByID()の引数にその変数を設定する、というまさにMVCって感じのコードなのですが、どうやら、固定要素ではaddressがdivのidなんだけど可変要素ではaddressがhiddenのidなのがマズかったらしいです*1


FFとIE9では不要なプロパティに対して値を設定しても無視してくれるのに、IE8以前では律儀にエラー出してくれるという‥‥

#ちなみに、固定要素ではaddressを表示したいけど、可変要素の中ではaddressは表示したくないので、hiddenをdivにするのはミリ。

*1:hiddenは要素を取得するコードを動かすためだけのダミーなので、valueを設定しなくても全然問題なし