jQuery:在<textarea>

时间:2015-06-22 14:42:32

标签: javascript jquery textarea

&lt; p&gt;我一直在搜索谷歌和SO几个小时,但似乎无法找到我的生活答案!&lt; / p&gt; &lt; p&gt;我想要做的就是保留输入到&lt; code&gt;&lt; textarea&gt;&lt; / code&gt;中的换行符。用户提供的元素,通过&lt; strong&gt; jQuery&lt; code&gt; $。ajax()&lt; / code&gt;发布内容调用&LT; /强取代。如果我像往常一样将表单提交到页面,这可行,但我的老板告诉我使用REST / AJAX。&lt; / p&gt; &lt; p&gt; SO上和网上的很多帖子一般都提到用&lt; code&gt;&lt; br /&gt;&lt; / code&gt;来替换&lt; code&gt; \ n&lt; / code&gt;了,或者使用&lt; code&gt; white-space:pre-wrap;&lt; / code&gt;在元素的CSS中。这些解决方案&lt; strong&gt;不&lt; / strong&gt;为我工作因为换行符根本不会显示在Chrome开发者工具中。&lt; / p&gt; &lt; p&gt;代码段:&lt; / p&gt; &lt; pre&gt;&lt; code&gt;&lt; form id =“addPostForm”role =“form”method =“post”action =“/ blog”&gt;     &lt; div class =“form-group”&gt;         &lt; textarea rows =“5”id =“postBody”name =“postBody”&gt;&lt; / textarea&gt;         ...更多输入控件     &LT; / DIV&GT;     &lt; button type =“submit”class =“btn btn-primary btn-block”&gt;提交&lt; / button&gt; &LT; /形式&GT; &lt; script type =“text / javascript”&gt;     $(document).on('submit','#addPostForm',function(){         var postBody = $(this)[0] .postBody.value;         ...更多代码     }); &LT; /脚本&GT; &LT; /代码&GT;&LT; /预&GT; &lt; p&gt;当我输入eg:< /p> &lt; p&gt;“这是第一段。&lt; / p&gt; &lt; p&gt;这是另一个。&lt; / p&gt; &lt; p&gt;而另一个。“&lt; / p&gt; &lt; p&gt;&lt; code&gt; postBody&lt; / code&gt;变量的值是:&lt; / p&gt; &lt; p&gt;“这是第一段。这是另一段。还有另一段。”&lt; / p&gt; &lt; p&gt;这让我抓狂!当然这不应该像它看起来那么难!&lt; / p&gt; &LT; p为H. P.S。我不认为它应该有所作为,但万一有人想知道,我正在使用Python / Pyramid,Jinja2和Bootstrap 3进行这个项目。&lt; / p&gt;

4 个答案:

答案 0 :(得分:0)

在JS中使用它

$("input[type=submit]").click(function(){
  $.ajax({
   type: "POST",
   url: "yoururl",
   data: $("#addPostForm").serialize()
   (...)
  });
});

在服务器端代码中,您可以使用原始空格获得POST值postBody。

答案 1 :(得分:0)

在我看来,这个问题源于Chrome Dev Tools剥离换行符。更改工具设置,或尝试其他类似firebug的内容。

答案 2 :(得分:0)

很抱歉浪费你的时间,就像使用$('#postBody').val()而不是$(this)[0].postBody.value一样简单。无论如何,谢谢所有评论者和回答者!

答案 3 :(得分:0)

尝试通过&#39; \ n&#39;分割线条。 (是的,我测试了这个)并用
标签重新加入,检查出来:

$('textarea').val().split('\n')

将它放在你的onclick函数中并在它上面设置一个断点,如果你使用的是Chrome,它会将这些行分成一个数组。如果你加入

.join('<br>')
你应该好好去。