2011-11-26 46 views
3

我已經做了textarea的形式,你可以改變你的描述,就像在我的previus問題,我問,如果有以禁標籤的任何方式。但是,現在有沒有當你按下輸入一個<br />將在textarea的設置,使得用戶不必自己想換行每次鍵入<br />的方法嗎?創建一個<br />當你按下Enter鍵

我想到了什麼一樣,如果它能夠找到的地方沒有什麼,但將這項工作?我不熟悉onpress事件......或者如果它在用戶按下提交後檢查輸入,然後檢查換行符。

我看到這個在YouTube上,這個網站和很多其他網站了。

+0

你想要的文字區域自動添加一個可見的字符串「
」當用戶按下輸入或者是你想要的textarea不顯示它,而是將其包含在後端,假設該值已提交給數據庫? – joshuahedlund

+0

如果您還允許一些HTML,這包括一些塊元素(如'P'),你可能最終與雙換行符。 – Nicole

回答

9

在PHP中,你可以使用nl2br()功能與<br />標籤更換任何換行符。

+0

我馬上試試!感謝您回答如此之快 – ZyteX

+0

不客氣。我真的猶豫了回答,因爲我不確定你是否在尋找前端或後端實現,因爲你的標籤列出了PHP和JavaScript。我是一個PHP傢伙,所以我按照我所知道的去做。 ;) 樂意效勞。 – AgentConundrum

+0

它的工作!非常感謝! – ZyteX

1

你可以做到這一點是:

 
function createBr(e) { 


    if (e.keyCode == 13) { 
     document.createElement("BR"); 
     //do what you want with it 
    } 
} 

希望它可以幫助

1
<script src="jquery.js"></script> 
<script> 
    $(function() 
    { 
     $('#txt').keyup(function (e){ 
      if(e.keyCode == 13){ 
       var curr = getCaret(this); 
       var val = $(this).val(); 
       var end = val.length; 

       $(this).val(val.substr(0, curr) + '<br>' + val.substr(curr, end)); 
      } 

     }) 
    }); 

    function getCaret(el) { 
     if (el.selectionStart) { 
      return el.selectionStart; 
     } 
     else if (document.selection) { 
      el.focus(); 

      var r = document.selection.createRange(); 
      if (r == null) { 
       return 0; 
      } 

      var re = el.createTextRange(), 
      rc = re.duplicate(); 
      re.moveToBookmark(r.getBookmark()); 
      rc.setEndPoint('EndToStart', re); 

      return rc.text.length; 
     } 
     return 0; 
    } 

</script> 
<div id="content"> 
    <textarea id="txt" cols="50" rows="10"></textarea> 
</div>