IE jQueryでテキストエリアの改行コードがおかしなことになる??
jQueryでテキストエリアへの値(文字列)設定・取得を繰り返すと、IEで改行コードがおかしくなことになったので自分用メモ。
結論を言えば、値設定のときに .text(value) を使って、取得のときに .val() を使っていたから(と自分では納得)。
改行コード「\n」を含む文字列を .text(value) で、テキストエリアに流し込み。
この場合、私の環境のIE8では画面上改行されませんでした。
仕方がないので、「\n」を「\r\n」に置換して流し込むと画面上も改行されて表示されます。
今度は、.val()で値を取得してみたら、「\r」が「\n」に置き換わっている模様。
結果、取得した文字列の改行コードは「\n\n」となっちゃう。
上記、FireFoxやChrome、Opera、safariでは発生しない。
なので、IEだけがおかしいかと思いこみ、ちょいハマり。
設定も取得も .val()で統一すれば、IEも問題なしでした。IEごめん。
テキストエリアにvalue属性はないけど、.val()で統一しましょう。
参考させていただいたページ
「なぜ$(‘textarea’).attr(‘value’)で値が取れるのか」