按下enter键时不会追加jQuery换行符

时间:2012-03-15 17:51:34

标签: javascript jquery html

我有一个简单的textarea用于表单提交。我想在按下ENTER时强制换行。现在我可以让它识别何时输入,例如按下keyCode 13。但是,它不会在输出的html附加换行符。如何完成,如果是这样,<br /><br />将如何隐藏用户。谢谢

    <textarea cols="50" rows="7" id="textarea"></textarea>

    <p><div id="data"></div></p>


    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

    <script type="text/javascript">

        $('#textarea').bind('keyup', function(e) {

            data = $('#textarea').val()
            $('#data').html(data);

            if(e.keyCode==13){
                $('#data').append('<br/><br />'); // <--- This won't work
                }

        });

    </script>

2 个答案:

答案 0 :(得分:6)

试试这个:

$('#textarea').bind('keyup', function(e) {
    var data = $('#textarea').val();
    $('#data').html(data.replace(/\n/g,"<br />"));
});

DEMO:http://jsfiddle.net/efLxP/

答案 1 :(得分:0)

首先,如果您要在<p>代码中打印数据,请使用<span>代替<div>。要解决您的问题,请尝试以下方法:

$('#textarea').bind("keydown", function(event) {
    var keycode = (event.keyCode ? event.keyCode : (event.which ? event.which : event.charCode));

    data = $('#textarea').val()

    $('#data').html(data);

    if (keycode == 13) {
         $('#data').html(data.replace(/\n/g,"<br />"));
         return false;
    }
});