当按下return时,jQuery会打破一个新行

时间:2014-10-14 10:31:35

标签: jquery

我有一些代码可以打印输入字段中输入的文本。我想要它,以便当按下return / enter时它会断开一个新行。

Here is a fiddle.

还有代码。

    <h3>Your Text:</h3>
    <input id="input" maxlength="50" type="text" name="Text" value="Max. 50 characters">
    <div id="container">
        <p id="text">Your words here</p>
    </div>

    $(document).ready (function() {

$('#input').keyup(function() {
        $('#text').html($(this).val());
});

});

7 个答案:

答案 0 :(得分:2)

使用textarea并设置p特定的CSS规则:

$(document).ready(function () {

    $('#input').keyup(function () {
        $('#text').html(this.value);
    });

});
#text {
    white-space: pre-line;
    /* collapse WS, preserve LB */
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<h3>Your Text:</h3>

<textarea id="input" maxlength="50" name="Text" value="Max. 50 characters"></textarea>
<div id="container">
    <p id="text">Your words here</p>
</div>

答案 1 :(得分:0)

使用textarea进行多行输入 输入时默认提交表单上的输入元素。

答案 2 :(得分:0)

将输入类型文本更改为textarea它将起作用

答案 3 :(得分:0)

使用textarea代替输入并使用<pre> element包装.val()值,如下所示:

$(document).ready(function() {
  $('#input').click(function() {
    $(this).val('');
  });
  $('#input').keyup(function() {
    $('#text').html("<pre>" + $(this).val() + "<pre>");
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h3>Your Text:</h3>
<textarea id="input" maxlength="50" style="resize:none;height:18px;">Max. 50 characters</textarea>
<div id="container">
  <p id="text">Your words here</p>
</div>

答案 4 :(得分:0)

嗯,这取决于你想要对内容做什么。 如果您只想在文本字段中显示多行,则需要一个文本区域,因为文本字段仅供单行使用。如果要将文本插入文本字段,则需要在文本中添加breakline标记,如下所示:

$('#input').keypress(function(e){
    if(e.which == 13){
        var newText= $(this).val() + '<br>';
        //doStuff with newText
    }
});

出于其他目的,您可能会考虑将'\n'附加到字符串而不是'<br>'。但这真的取决于你的目的

答案 5 :(得分:0)

如果你想保留输入字段,你应该像这样添加br值

$(document).ready(function() {

  $('#input').keyup(function(e) {

    if (e.keyCode == 13) {
      $(this).val($(this).val() + '<br/>');
    }
    $('#text').html($(this).val());
  });

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<h3>Your Text:</h3>

<input id="input" maxlength="50" type="text" name="Text" value="Max. 50 characters">
<div id="container">
  <p id="text">Your words here</p>
</div>

答案 6 :(得分:0)

每个输入的新行

这里jsfiddle为你http://jsfiddle.net/8khbz0zc/17/

$('#input').keyup(function(e) {
  $('.text').last().html($(this).val());
  if (e.keyCode == 13) {
    $("#container").append('<p class="text"></p>');
    $(this).val('');
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h3>Your Text:</h3>
<input id="input" maxlength="50" type="text" name="Text" placeholder="Max. 50 characters" value="">
<div id="container">
  <p class="text">
    Your words here</p>

</div>