文本框(textarea)的回车符

时间:2011-08-16 13:16:21

标签: javascript asp.net html textarea carriage-return

我有一个textarea属性“wrap”=“hard”(实际上它是服务器端文本框,但有多种文本模式)。

<asp:TextBox TextMode=MultiLine runat=server ID=txt Width=50 Height=50 class=txtclass />

<asp:Button runat=server ID=btnServer OnClick=btn_Click Width=80 Text="Click server" />

<input type="button" value="Click client" onclick="clientclick();" id="btnClient" style="width: 80px;" />

   protected void Page_Load(object sender, EventArgs e)
    {
        txt.Attributes.Add("wrap", "hard");
    }

我输入的文字比textarea宽。当我单击客户端按钮时,警报中的文本没有回车(如“111111111”)。

<script src="jquery-1.5.2.min.js" type="text/javascript"></script> 

<script type="text/javascript">    

function clientclick() {
        alert($('.txtclass').val());          
    }

当我在调试时单击服务器按钮时,我看到文本有回车符(例如“11111 \ r \ n1111”)。

protected void btn_Click(object sender, EventArgs args)
    {
        var test = txt.Text;
    }

问题是如何在客户端获得带回车的文本?

5 个答案:

答案 0 :(得分:4)

有一些人发布了与您之前相同的问题,并且普遍的共识是没有简单的,开箱即用的解决方案。修复似乎是一次一个字地走一个字,并在换行时添加换行符。

在这种情况下提供了一些示例JS - finding "line-breaks" in textarea that is word-wrapping ARABIC text

答案 1 :(得分:0)

alert($('.txtclass').val().replace(/\r/g,"\r").replace(/\n/g,"\n"));
你试过这样的事吗?

答案 2 :(得分:0)

由于您正在处理HTML,因此您可以使用'&lt; BR&gt;'标记以强制文本框内的换行符。我挣扎了一段时间,终于找到了这个解决方案。它对我来说很完美。

答案 3 :(得分:0)

以下是它的完成方式。

可读版本:

S=escape(The_textarea.innerHTML);
S=S.replace(/%0D%0A/g,'<br>');
S=S.replace(/%0A/g,'<br>');
S=S.replace(/%0D/g,'<br>');
S=unescape(S);

高效版本:

S=unescape(escape(The_textarea.innerHTML).replace(/%0D%0A/g,'<br>').replace(/%0A/g,'<br>').replace(/%0D/g,'<br>'));

答案 4 :(得分:0)

\n\r回车仍然存在,它们只是没有被解释(改为HTML)。

因此,使用<br />元素 - 在客户端,它们将被解释为HTML,并根据需要显示换行符。