2017-02-08 68 views
1

我正在建立html + css(純粹的,沒有BS)聊天窗口。我對消息的輸入存在嚴重的問題。如何設置max-rows到textarea輸入標籤?

我在找什麼是輸入用戶可以寫他的消息。這將是inputtextarea標記。我希望效果類似於FB在另一條線開始時完成的行爲。這會將我的選擇限制爲textarea。我需要提交按鈕,並提交輸入。所以我在form標籤中使用它。

<form> 
<textarea></textarea> 
<input type="submit" value="Send message"> 
</form> 

什麼我不undestand是我應該如何格式textarea

  1. 如何從一條線開始,向上移動一些最大線數值(我想只允許線),如果達到最大線數則開始溢出信息?
  2. 如何檢測shift + enter創建一個新行?

回答

3

試試這個代碼

<form> 
<textarea rows="10" cols="10" maxlength="200" style="resize:none;"></textarea> 
<input type="submit" value="Send message"> 
</form> 

$(document).ready(function() { 
    $('textarea').live("keypress", function(e) { 
     if (e.keyCode == 13) 
     { 
      $('form').submit(); 
     } 
    }); 
}); 
+2

不再推薦使用.live()方法,因爲更高版本的jQuery提供了沒有缺點的更好的方法。 截至目前,jQuery中的所有內容都指向「on」事件。儘管如此,我還是會爲舊版本的jQuery迴應你的迴應。 做得好 – Krishna9960

0

威力幫助(最好使用jQuery,onDomReady並悄悄地加入keydown事件到textarea的可能是):

<html> 
    <head><title>Test</title></head> 
    <body> 
    <script type="text/javascript"> 
     var keynum, lines = 1; 

     function limitLines(obj, e) { 
     // IE 
     if(window.event) { 
      keynum = e.keyCode; 
     // Netscape/Firefox/Opera 
     } else if(e.which) { 
      keynum = e.which; 
     } 

     if(keynum == 13) { 
      if(lines == obj.rows) { 
      return false; 
      }else{ 
      lines++; 
      } 
     } 
     } 
     </script> 
    <textarea rows="4" onkeydown="return limitLines(this, event)"></textarea> 
    </body> 
</html> 

*編輯 - 解釋:如果按下ENTER鍵,它會捕獲按鍵,如果textarea中的行與textarea的行數相同,則不添加新行。否則它會增加行數。請根據需要使用它。

相關問題