【发布时间】:2011-07-18 07:45:02
【问题描述】:
我有以下代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org
/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="RLJ RLJ" />
<title>Untitled 2</title>
</head>
<body>
<form action=SCRIPT.php method=POST>
<textarea name="pastwork" id="pastwork" rows="6" wrap="hard" style="border: 1px solid
#808080; width:85px; padding: 5px;"></textarea>
<input type="submit" value = "Submit"/>
</form>
</body>
</html>
其中SCRIPT.php如下:
<?php
$pastwork = $_POST['pastwork'];
echo "<pre>". $pastwork."</pre>";
echo "<br />";
echo nl2br($pastwork);
?>
我遇到的问题是 Firefox 中没有正确传递换行符。 当我在 textarea 中输入以下内容时(B 表示导致光标跳到下一行的字符,N 表示导致该单词跳到下一行的字符):
dddddddddddBdd fff
ggg ggg ggNgg sss
即文本区域如下所示:
+------------+
| dddddddddd |
| Bdd fff |
| ggg ggg |
| ggNgg sss |
+------------+
Internet Explorer 将其回应为:
ddddddddd
bdd fff
ggg ggg
ggNgg sss
这是正确的,换行符正是它们在文本区域中的位置。
但是,Firefox 将其回应为:
ddddddddddN fff
ggg ggg ggNgg sss
我是使用nl2br()还是pre标签。
(我还没试过其他浏览器)
有人可以告诉我为什么会这样,以及如何确保正确传递换行符,而不管浏览器如何。
【问题讨论】:
标签: php html textarea word-wrap