2013-02-15 67 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,這是它們的互聯網約定。這就是瀏覽器所做的。但是他們不需要在內部爲元素內容這麼做,只有在準備提交表單數據時才需要。