javascript中的新行传递给参数

时间:2011-09-07 12:52:13

标签: javascript jquery asp.net

我正在使用.net多线控制。我使用jQuery从该控件获取数据:

$('.detailsCommentContent').val()

此时我警告该值可见新线。

然后我发出请求www.example.com?commentContent= + "$('.detailsCommentContent').val()"

在http请求中,此时没有newLines标志。

我该怎么做才能保留这些新的符号?

感谢您的帮助

4 个答案:

答案 0 :(得分:3)

请求POST请求更改某些内容的数据,而不是GET。通过这种方式,您可以发布您喜欢的任何数据而无需对其进行编码,最重要的是:仅仅抓住您的网页的机器人不会对您的网站造成任何损害。另请参阅http://thedailywtf.com/Articles/The_Spider_of_Doom.aspx

答案 1 :(得分:1)

您将需要对值进行URL编码:

var url = "http://www.yourpage.com?commentContent=" + 
  encodeURIComponent($('.detailsCommentContent').val());

答案 2 :(得分:1)

<Textarea>元素存储&#34;新行&#34;基于主机操作系统,有时甚至只是浏览器。

在windows,mac和linux之间,可以是\r\n\n\r

\r是&#34;回车&#34;,\n是&#34;换行&#34;。 (C ++人员将熟悉crlf

这些字符组成一个新行。

问题在于:

当您获得textarea的值时,在存储到变量时,它总是保留行标记。您可以尝试替换换行符,或按@ Pointy的答案对其进行编码。

这个问题以一些形式存在,但它们都很难找到,因为我们有很多不同的名字用于换行。

基本上,浏览器出于某种原因讨厌你,你需要隐藏你正在做的事情,因为它试图真的很聪明。

答案 3 :(得分:0)

对值使用escape()函数,或使用POST而不是GET。