textarea の最初の改行が無視される件
2008年 7月 29日 12:00恥ずかしながら知らなかったのですが、textarea の最初の改行って無視されるんですね。
例えば、次のような感じで HTML を書くと
<?php $text = "\r\n\r\n改行が2つ入ってます。"; ?> <textarea rows="4" cols="30"><?php print($text); ?></textarea>
こんな感じで textarea 中の最初の改行は無視されてしまいます。
——————
\r\n
改行が2つ入ってます。
——————
ブラウザ依存かとも思いましたが、IE7 でも Firefox でも iモードブラウザでも同じでした。
最初の改行を有効にするには HTML 中のソースで textarea タグを同一行に書かずに、改行して書く必要があるみたいです。
<?php $text = "\r\n\r\n改行が2つ入ってます。"; ?> <textarea rows="4" cols="30"> <?php print($text); ?> </textarea>
すると、こんな感じで改行が反映されます。
——————
\r\n
\r\n
改行が2つ入ってます。
——————
普通に素で HTML を書ける場合はいくらでも対応できるんですけど、フレームワークなんかで textarea タグが直接いじれない場合は面倒そうです。
例えば Struts の html:textarea タグは展開されると1行で記述されてしまうため、最初の改行が必ず消えてしまいます。 html:textarea タグを使う場合は、フォームの getter メソッドあたりを工夫して、先頭に改行を追加してあげたりする必要がありそうですね。
