2014-01-29 73 views
0

我有一個文本值:textarea的新行問題(ASP經典)

<textarea id="body"> 

我使用jQuery的這個值傳遞到另一個頁面通過GET數組:

var body = $('#body').val(); 

window.open("url?body=" + body, ...etc....) 

我收到值在新的頁面上,但是當我顯示它時,沒有換行符。

所以,如果用戶按下「Enter」鍵開始一個新行,它正確地顯示在第一頁上,並在第一頁的警告,但是當它在第二頁中使用它是不正確的:

例如:

12345 
12345 
12345 

變爲:

123451234512345 

和:

Hello World 
How are you? 

變爲:

Hello WorldHow are you? 

我在傳遞之前,提醒第一頁上的價值,它似乎是,「警告」值具有換行符。

我曾嘗試與突破更換新行代碼:

body.replace(/\n\r?/g, '<br />'); 

但這並沒有工作。任何指針?

這些頁面是ASP經典頁面。

感謝

+0

你可以用text()而不是val()來試試嗎? –

+0

如果你在'pre'標籤中寫出它,那麼這條線是否會突破? – Polynomial

+0

因此,如果您在JS中發出警報,但沒有在到達目標頁面時就沒有問題。你有沒有嘗試查看目的地頁面的來源,看看有沒有跡象? –

回答

1

您通過表單提交傳遞的textarea輸入到第二頁。如果你是那麼給你的textarea的name屬性 - 例如:name="body",然後在目標頁面使用

<%= (replace(request("body"),chr(13),"<br />")) %> 

如果你曾經使用PHP這本質上是做相同nl2br()

編輯 - 用.asp文件擴展名保存此文件,然後試試

<html> 
<body> 
<%= (replace(request("body"),chr(13),"<br />")) %><br /><br /> 
    <form method="post"> 
    <textarea name="body" rows="10" cols="40"></textarea><br /> 
    <input type="submit"> 
    </form> 
</body> 
</html> 
+0

我通過get數組傳遞textarea值。 Request.QuesryString(「body」) – Mildfire

+0

這應該工作。 Request.Querystring(如果使用的是GET方法),Request.Form(如果使用POST),或者只是Request(請求)將收集來自方法 – John

+0

的變量,但不幸的是結果仍然相同。就像當它進入第二頁時,新的行字符就不會被替換。似乎以某種方式所有「\ n」通過GET數組傳遞時被刪除。 – Mildfire