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

时间:2015-08-20 03:54:10

标签: css asp.net textbox

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

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

我希望用户键入像

这样的长文本

ttttttttttttttttttttttttttttttttttttttttttttttt

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

ttttttttttttttttttttttttt

ttttttttttttttttttttttttt

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

提前致谢!

您的评论和建议非常感谢!

4 个答案:

答案 0 :(得分:1)

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

&#13;
&#13;
    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;
        }
    }
&#13;
<textarea id="tb" onkeypress="newline(this.id)" cols="30" rows="4"></textarea>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

看起来您的文本框已经应用了分词符号,可能是在CSS?

最好的选择是在你的CSS中设置一个单词中断:正常。

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

答案 2 :(得分: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;
            }
    });

});

答案 3 :(得分:0)

根据您的代码,您没有指定任何文本模式,因此默认情况下它将textmode作为单行。关于一些角色之后的新线,你必须检查和火功能分裂。如果我们提到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>