在textarea中输入密钥

时间:2010-01-20 07:22:46

标签: javascript textarea

我有一个textarea,在textarea中按下的每个 Enter 键我希望用一个子弹说出新行(*)。怎么去呢?

请不要jQuery。

之后我可以观察 Enter 键!我是否应该获得textarea的全部价值并附加*并再次填充textarea

5 个答案:

答案 0 :(得分:25)

你可以这样做:

<body>

<textarea id="txtArea" onkeypress="onTestChange();"></textarea>

<script>
function onTestChange() {
    var key = window.event.keyCode;

    // If the user has pressed enter
    if (key === 13) {
        document.getElementById("txtArea").value = document.getElementById("txtArea").value + "\n*";
        return false;
    }
    else {
        return true;
    }
}
</script>

</body>

虽然按Enter键的新行字符仍然会出现,但它开始得到你想要的东西。

答案 1 :(得分:15)

只需将此tad添加到您的textarea。

onkeydown="if(event.keyCode == 13) return false;"

答案 2 :(得分:7)

您需要考虑用户在文本中间按Enter键的情况,而不仅仅是在结尾处。我建议按照建议检测keyup事件中的回车键,并使用正则表达式确保值符合您的要求:

<textarea id="t" rows="4" cols="80"></textarea>
<script type="text/javascript">
    function formatTextArea(textArea) {
        textArea.value = textArea.value.replace(/(^|\r\n|\n)([^*]|$)/g, "$1*$2");
    }

    window.onload = function() {
        var textArea = document.getElementById("t");
        textArea.onkeyup = function(evt) {
            evt = evt || window.event;

            if (evt.keyCode == 13) {
                formatTextArea(this);
            }
        };
    };
</script>

答案 3 :(得分:3)

我的场景是当用户在输入textarea时敲击回车键时我必须包含换行符。我使用下面的代码实现了这一点......希望它可以帮助某人...... < / p>

function CheckLength()
{
    var keyCode = event.keyCode
    if (keyCode == 13)
    {
        document.getElementById('ctl00_ContentPlaceHolder1_id_txt_Suggestions').value = document.getElementById('ctl00_ContentPlaceHolder1_id_txt_Suggestions').value + "\n<br>";
    }
}

答案 4 :(得分:0)

你可以这样做:

&#13;
&#13;
.play
&#13;
$("#txtArea").on("keypress",function(e) {
    var key = e.keyCode;

    // If the user has pressed enter
    if (key == 13) {
        document.getElementById("txtArea").value =document.getElementById("txtArea").value + "\n";
        return false;
    }
    else {
        return true;
    }
});
&#13;
&#13;
&#13;