下面是最简单的一个例子,随便存成个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没有被发现还是我理解错误?

解决方案 »

  1.   

    在.net里试验的话,就放个MultLine的TextBox,在弄个提交按钮,什么代码都不要写,在TextBox里先换几行再写点字,按提交按钮,能发现一样的问题,肯定是html的问题
      

  2.   

    <%
    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>
      

  3.   

    接楼上的:
    html只认识<br />,不认识'\n'
      

  4.   

    a = Replace(Request.Form("a"),vbcrlf,"<br/>")
      

  5.   

    当然知道你说的什么意思.我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报告.
      

  6.   

    还是楼上的仔细,上面说什么替换成<br>的全部是看帖不仔细的