【问题标题】:textbox auto newline when 50 character asp.net当 50 个字符 asp.net 时,文本框自动换行
【发布时间】:2015-08-20 03:54:10
【问题描述】:

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

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

我想当用户输入长文本时喜欢

tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt

只要遇到 50 个字符,它就会自动换行

tttttttttttttttttttttttttt

tttttttttttttttttttttttttt

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

提前致谢!

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

【问题讨论】:

  • 你可以在texbox上使用onkeydown javascript函数并检查分割线的长度。

标签: css asp.net textbox


【解决方案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;
        }
    }
&lt;textarea id="tb" onkeypress="newline(this.id)" cols="30" rows="4"&gt;&lt;/textarea&gt;

【讨论】:

    【解决方案2】:

    您的文本框似乎应用了分词符,也许是在 CSS 中?

    最好的选择是在你的 CSS 中添加一个 word-break: normal。

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        根据您的代码,您没有指定任何文本模式,因此默认情况下它将文本模式作为单行。关于某个字符后的新行,您必须检查该行并触发功能才能拆分。在这里,它采用您提到的宽度,然后如果我们将 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>
        

        【讨论】:

          猜你喜欢
          • 2023-03-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-20
          • 2013-03-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多