2013-04-09 64 views
2

我在HTML中使用文本區域標記,我必須在單獨的行中打印成分,但即使在使用回車鍵時,它將在單行中,當我將文本區域的值傳遞給一個變量並打印出來。使用文本區域在多行顯示文本

以下是我的代碼片段:

<div data-role="fieldcontain"> 
    <label for="name">Ingredients</label> 
    <textarea rows="4" cols="50" id="new_ingredients"> 

    </textarea> 
</div> 

$('#new_recipe').live('pagebeforeshow',function(event){ 
    var temp1 = $("#new_ingredients").val(); 
    $("#testing").text(temp1); 
}); 

<div data-role="page" id="new_recipe"> 
    <div class="content" id="testing" ></div> 
</div> 

請幫我,我怎麼能得到不同的行數據時,用戶按下提前進入key.Thank你。

+0

僅供參考生活()的支持與當前版本的http:// API。 jquery.com/live/ – swapnesh 2013-04-09 06:35:52

+1

看看這個:http://stackoverflow.com/questions/863779/textarea-line-breaks-javascript – 2013-04-09 06:37:11

回答

3

使用此:

$("#testing").html(temp1.replace(/\n\r?/g, "<br />")); 

由按下「輸入」表示的字符在一個textarea密鑰被表示爲「\ n」(有時\r以及)。但是,當用HTML顯示時,它們在視覺上僅僅意味着空間。要顯示這些換行符,它們需要替換爲與HTML等效的元素 - <br />

由於<br />元素現在被添加到#testing元素的內容中,因此您需要使用.html()而不是.text()。否則,HTML會被轉義並且不能正確顯示。

DEMO:http://jsfiddle.net/Wkbrn/2/

+0

@knut我試過使用替換功能,但它顯示
標記在div內容與字符串,仍然不是分開的行。 – user2185012 2013-04-09 06:50:17

+0

@ user2185012您是否使用'$(「#testing」)。html()'而不是'$(「#testing」)。text()'就像我建議的那樣?這是爲了正確顯示'
' HTML所必需的,我在回答中解釋了 – Ian 2013-04-09 06:52:00

+0

@lan非常感謝。它的工作原理:) – user2185012 2013-04-09 07:02:34

0

試試這個

<script src='http://code.jquery.com/jquery-latest.min.js'></script> 
<div data-role="fieldcontain"> 
     <label for="name">Ingredients</label> 
     <textarea rows="4" cols="50" id="new_ingredients">ingredient1&#13;&#10;ingredient2&#13;&#10 
     </textarea> 
     </div> 

<script> 
$(document).ready(function(){ 
var temp1 = $("#new_ingredients").html().replace(/\n/g,"<br>");; 
$("#testing").html(temp1); 
}) 
</script> 

<div data-role="page" id="new_recipe"> 
<div class="content" id="testing" ></div></div> 

我修改劇本只是用於測試