50 个字符时文本框自动换行 asp.net

textbox auto newline when 50 character asp.net

我有一个供用户输入的文本框,下面的代码是我如何创建文本框的。

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

我想当用户键入长文本时,例如

tttttttttttttttttttttttttttttttttttttttttttttttttttt

每当它遇到 50 个字符时,它会自动换行,如

tttttttttttttttttttttttttt

tttttttttttttttttttttttttt

有谁知道我的代码有什么问题吗?

提前致谢!

非常感谢您的意见和建议!

您的文本框似乎应用了分词,可能在 CSS?

最好的选择是在 CSS.

中添加一个分词符:正常

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

我遇到了类似的问题,我试过的是。

 <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;
            }
    });

});

根据您的代码,您没有指定任何文本模式,因此默认情况下它将文本模式视为单行。关于某个字符后的新行,你必须检查它并触发函数来拆分。如果我们提到 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>

试试这个例子。它将为您提供线索并帮助您找到解决方案。

    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>