我有一个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;
}
问题是如何在客户端获得带回车的文本?
答案 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,并根据需要显示换行符。