2015-08-20 111 views
0

我有一個供用戶輸入的文本框,下面的代碼是我如何創建文本框。textbox自動換行時,50個字符asp.net

<asp:TextBox ID="txtIncidentDesc" runat="server" Height="50px" Width="441px" Columns="4" Rows="8"></asp:TextBox> 

我要像當用戶鍵入長文本像

ttttttttttttttttttttttttttttttttttttttttttttttt

,只要它滿足了50個字符它會自動換行像

ttttttttttttttttttttttttt

ttttttttttttttttttttttttt

有沒有人知道我的代碼有什麼問題?

提前致謝!

您的意見和建議非常感謝!

+0

你可以使用JavaScript的onkeydown事件對機能的研究和texbox檢查長度線分割。 –

回答

1

試試這個例子。它會給你一個線索,並幫助你找到解決方案。

var cnt = 1; 
 
    function newline(text) { 
 
     var val = document.getElementById(text).value; 
 

 
     var t; 
 
     if (cnt > 1) 
 
      t = (val.length/10 * 10)/cnt; 
 
     else 
 
      t = val.length; 
 

 
     if (t == 10) { 
 
      document.getElementById(text).value = val + '\n'; 
 
      cnt = cnt + 1; 
 
     } 
 
    }
<textarea id="tb" onkeypress="newline(this.id)" cols="30" rows="4"></textarea>

0

它看起來像你的文本框應用了word-break,也許在CSS?

最好的選擇是在CSS中放置一個word break:normal。

或者你可以做內聯: <asp:TextBox ID="txtIncidentDesc" runat="server" Height="50px" Width="441px" Columns="4" Rows="8" style="word-break:normal;"></asp:TextBox>

0

我有類似的問題,我曾嘗試是。

<textarea id="txtdesc"></textarea> 

jQuery代碼

 $(document).ready(function(){ 

    $('#txtdesc').keypress(function(e){ 
     var text = $(this).val(); 
     var lines = text.split('\n'); 
     if (e.keyCode == 13){ 
       return true; 
      } 
      else{ 
     //Should check for backspace/del/etc. 

      var cane = $(this).get(0).selectionStart; 

      var line = 0; 
      var charCount = 0; 
      $.each(lines, function(i,e){ 
       charCount += e.length; 
       if (cane <= charCount){ 
        line = i; 
        return false; 
       } 
       //\n count for 1 char; 
       charCount += 1; 
      }); 

      var currentline = lines[line]; 
      return currentline.length < 11; 
      } 
    }); 

}); 
0

按照你的代碼,你沒有指定任何文本模式,以便在默認情況下將採取的文本模式爲單行。關於某些角色後的新行,你必須檢查那個和fire功能來分割。如果我們提到textmode爲多行,那麼它會根據您提到的寬度進行調整,然後轉到下一行。

所以可能這個代碼幫助你解決你的問題:

<script type="text/javascript"> 
     function CheckReturns() 
     { 
      var txt = document.getElementById("TextBox1"); 
      var splitResults = txt.value.split("\n"); 
      if (splitResults[splitResults.length - 1].length < 50) 
      { 
       return true; 
      } 
      else 
      { 
       txt.value = txt.value + "\n\r"; 
      } 
     } 
    </script> 

調用腳本的onkeydown文本框:

<asp:TextBox ID="TextBox1" Height="50px" Width="500px" Rows="8" Columns="4" runat="server" onkeydown="return CheckReturns();" TextMode="MultiLine"></asp:TextBox>