【问题标题】:Adding a newline character and display input from a textarea添加换行符并显示来自文本区域的输入
【发布时间】:2017-05-18 22:04:43
【问题描述】:

我有一个文本在一个表格中。我用了这段代码

 $('textarea').keypress(function (event) {
        if (event.which == 13) {
            event.preventDefault();
            var s = $(this).val();
            $(this).val(s + "<br />");
        }
    });

允许用户使用回车键进入下一行。 我尝试同时使用
和 \n
在表单中,用户可以转到新行。但是,当输入显示在页面上时,不会显示新行,并且不会出现新行之后的任何文本。但是,它仍然存在 - 如果您去编辑表单,它仍然会显示您单击 Enter 后键入的文本。我加了

white-space: pre-wrap;

在我的 css 文件中的文本框的 css 中尝试解决问题。但是,它仍然没有工作。有关如何解决此问题的任何建议/意见?

【问题讨论】:

    标签: javascript html css web-applications


    【解决方案1】:

    您不想在他们键入时插入&lt;br/&gt; 标记。您真的不想在他们键入时对他们的文本做任何事情。如果您想保留它们的换行符,可以在将它们注入元素之前将它们转换为&lt;br/&gt; 标签。

    $('#text').keyup(function(event) {
      var text = $("#text").val();
      text = text.replace(/(?:\r\n|\r|\n)/g, '<br />');
      $("#result").html(text);
    });
    textarea {
      min-width: 200px;
      min-height: 200px;
      float: left;
    }
    
    #result {
      float: left;
      border: 1px solid red;
      padding: 10px;
      margin-left: 10px;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <textarea id="text" placeholder="Type in here"></textarea>
    <div id="result"></div>

    【讨论】:

    • 我也尝试过使用 \n 和 \r\n,但都没有奏效,所以我认为简单地替换它不会有任何作用。自发布以来,在我的调试中,我还尝试添加 wrod-wrap: break-word;到CSS。也没有成功。
    • 你试过我发布的内容了吗?
    • 是的,它不起作用。我认为问题可能在于用新行显示文本,而不是存储文本。
    猜你喜欢
    • 2013-03-01
    • 1970-01-01
    • 2011-09-14
    • 2014-03-31
    • 1970-01-01
    • 2021-04-30
    • 2010-09-09
    • 2011-03-09
    • 1970-01-01
    相关资源
    最近更新 更多