是HTML的Bug吗?Textarea提交后,输入内容头的换行会自动不见。。。

yancey 2008-04-06 03:47:48
下面是最简单的一个例子,随便存成个asp文件,输入几个回车后再加点文字,按提交,你会发现每提交一次,输入内容头的换行就少一航÷行。。。

<%
a = Request.Form("a")
%>

<html>
<head></head>
<body>
<form method="post">
<textarea name="a" cols="80" rows="10"><%=a%></textarea>
<input type="submit" value="go" />
</form>
</body>
</html>



网上找了半天每找到同样问题的,是确实有Bug没有被发现还是我理解错误?
...全文
159 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
youxian1 2010-07-09
  • 打赏
  • 举报
回复
4
4
yancey 2008-04-18
  • 打赏
  • 举报
回复
还是楼上的仔细,上面说什么替换成<br>的全部是看帖不仔细的
tangqiaojie 2008-04-10
  • 打赏
  • 举报
回复
a = Replace(Request.Form("a"),vbcrlf,"<br/>")
exiori 2008-04-10
  • 打赏
  • 举报
回复
这个要转化成HTML代码的。
Allen_Chen_ 2008-04-10
  • 打赏
  • 举报
回复
当然知道你说的什么意思.我C#来解释(asp.net)下就是这样:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<%
a = Request.Form["a"];
%>
<textarea name="a" cols="80" rows="10"><%=a%></textarea>
<input type="submit" value="go" />

</div>
</form>
</body>
</html>

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page
{
public string a;
protected void Page_Load(object sender, EventArgs e)
{

}
}

几年前就已经讨论过了:
http://www.usenet-forums.com/php-language/16478-losing-leading-blank-line-posts-2.html
在我看来是浏览器的bug.应该是把start tag后面的\r\n给忽略掉了.因为我们可以这么写:
<textarea name="a" cols="80" rows="10">
hello</textarea>
注意这里用了换行.浏览器应该会把第一个\r\n给忽略掉.

从上面的回帖看有的浏览器没有这个问题.应该是对textarea的情况做了特殊处理.

有兴趣试一下这个:
<textarea name="a" cols="80" rows="10">




<%=a%></textarea>
<input type="submit" value="go" />

好了下课.给大家布置回家作业.去找一找相关的bug报告.
yancey 2008-04-10
  • 打赏
  • 举报
回复
你们到底有没有自己看我说的东西?
JGood 2008-04-09
  • 打赏
  • 举报
回复
接楼上的:
html只认识<br />,不认识'\n'
iuhxq 2008-04-07
  • 打赏
  • 举报
回复
<%
a = Request.Form("a").Replace("\r", "<br />")
%>

<html>
<head></head>
<body>
<form method="post">
<textarea name="a" cols="80" rows="10"><%=a%></textarea>
<input type="submit" value="go" />
</form>
</body>
</html>
lovehongyun 2008-04-07
  • 打赏
  • 举报
回复
0_0
正宗老冉 2008-04-06
  • 打赏
  • 举报
回复

编码
yancey 2008-04-06
  • 打赏
  • 举报
回复
尾部的换行不会消失,就头部的,非常奇怪,不知道怎样解决了。。
yancey 2008-04-06
  • 打赏
  • 举报
回复
在.net里试验的话,就放个MultLine的TextBox,在弄个提交按钮,什么代码都不要写,在TextBox里先换几行再写点字,按提交按钮,能发现一样的问题,肯定是html的问题。。。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧