2013-02-15 97 views
0

当HTML是什么破相当于我传递字符串从HTML为Javascript传递给JavaScript的

<textarea ></textarea> 

如果用户按 'ENTER' textarea的内...

例如

hello there 
I hit the enter key 

一旦这个字符串被提交给javascript,它会是什么样子?

是这样的吗?

pass_character = "hello there \n I hit the enter key"; 

但'\ n'似乎是错误的。我做了

text = pass_character.split(' '); 
if(text[i] == '\n') 
     do something 

我想知道换行符相当于或“进入”时,它已经被传递到JavaScript的测试,所以我可以管理在未来的代码的文本。

+0

永远不要在if语句中留下大括号,以后获得的额外行不值得混淆。 – 2013-02-15 02:14:35

+0

要在特定系统中查看换行符的表示形式,只需使用例如打印出包含换行符的字符串的字符即可。 'charCodeAt()'方法。 – 2013-02-15 07:40:55

回答

1

是的,等价​​的代码将是一个换行符,但在你的例子中不应该有\n之间的空格。

+0

我更新了我的问题。看来\ n是错误的 – 2013-02-15 02:13:42

1

将文本添加到textarea时,我会使用\r\n,因为它保留了格式并且不会呈现HTML实体。如果您打算将该文本用作HTML,则可能需要将它们转换为换行符。使用\n将适用于基于Unix的系统,但是您可能会或可能不会在旧版本的IE中遇到问题。更重要的是 - 当用户复制文本并粘贴文本时,原始格式也将被保留,您可能需要考虑是否有条件地将换行符用作回车和/或换行符。

http://jsfiddle.net/NgcuF/1/

0

通过HTML规范,一个line break可以是换行(LF),回车(CR),或CR LF对。这意味着从JavaScript的角度来看,根据实施情况,HTML换行符可能为'\n''\r''\r\n'

当提交包含textarea的表单时,浏览器需要将换行符规范化为CR LF,这是它们的互联网约定。这就是浏览器所做的。但是他们不需要在内部为元素内容这么做,只有在准备提交表单数据时才需要。