バグの症状をまとめてみると……
Opera 9 および 10 で、
- あるDOM要素──ここでは仮にWとする──内(たとえばDIV要素内)に、jQueryで$('<textarea></textarea>') などとして作成したTEXTAREA要素を子要素もしくは孫要素などとして関連付ける(appendメソッドなどを使用)。
- W要素を空にする──子要素をすべて削除するなり、innerHTMLプロパティに空文字列を代入するなりする。jQuery要素としてのWであれば、emptyメソッドでこれができる。
- もう一度、1と同じ手順でTEXTAREAを作成して要素Wに関連付ける。
これでもう、TEXTAREAのvalueプロパティと、実際に表示されているTEXTAREA内のテキストとが、連動しなくなる。
こうなると、もう、どんなテキストを入力しても、あるいは既存のテキストをどう編集しようとも、それらがvalueプロパティに反映されないため、JavaScript側からユーザが入力したテキストを取得しようとしても、あくまでもプロパティとしてのvalueの値しか取得できなくなる。
プロパティとしてのvalue──表示されているテキストとの連携を失ったvalueの値──は、もちろんvalueプロパティに対して別の文字列を代入することで変更可能だし、当然jQueryのメソッドでも変更できる。しかしこうしてvalueプロパティの値を変更しても、もう表示には反映されない。
これはかなり最悪な状態である。どうしても回避できない! こんな簡単なことなのに、検索でしらべてみても他に同様の症状の報告がない。これはぼくのPCにおいてだけ発生するもの?!
0 件のコメント:
コメントを投稿