如何通过在javascript中按enter键将文本添加到文本区

How to add text to textarea by pressing the enter key in javascript

本文关键字:文本 添加 文本区 enter 何通过 javascript 中按      更新时间:2023-09-26

我对HTML和Javascript完全陌生。我正在使用一个非常简单的代码,以附加一些文本输入字段中键入到文本区域中的文本。用户应该能够通过单击回车键或按回车键来附加文本。我使用了在这个线程中给出的代码,它工作得很好,但只要文本被附加在文本区域的整个文本消失!这只会在按下回车键时发生。当按下按钮时,代码工作正常。我认为这可能是因为我封闭的文本区域和输入在一个表单标签,因为当我删除它,它似乎工作得很好。但是我需要将输入字段中键入的字符串发送到服务器,并将其显示在文本区域中。有点像聊天应用,我能删除表单字段吗?我也不是很熟悉如何事件对象和窗口。事件的工作。我将非常感谢任何我能得到的帮助。

试图让输入按钮'clickable'

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form name="frm">
<textarea id="textbox" name="textbox" rows="20" cols="70" readonly>
</textarea>

<input id="prmpt" type="text" name="prmpt" onkeypress="KeyPress(event)"/>
<input type="button" id="enterInst" value="Enter" onclick="doSomething();"/>
</form>

</body>
<script>
function KeyPress(e) { 
    e = e || window.event;
    var key = e.keyCode ? e.keyCode : e.which;
    if (key == 13) {
        doSomething();
    }
    return;
}
function doSomething(){
    var instruct = document.getElementById("prmpt").value;
    if(instruct === "'n")
    {
        document.getElementById("textbox").value += ">>"+instruct;
        document.getElementById("prmpt").value="";
        document.getElementById("prmpt").focus();
        return;
    }
    else{
        document.getElementById("textbox").value += "'n"+">>"+instruct;
        document.getElementById("prmpt").value="";
        document.getElementById("prmpt").focus();
        return;
    }
}
</script>
</html>

是的,你是对的,这是因为<form>。当您在输入框中按enter键时,正在提交表单。为了避免这种情况,您可以在KeyPress()函数中处理enter键后添加e.preventDefault();。这样的:

function KeyPress(e) { 
    e = e || window.event;
    var key = e.keyCode ? e.keyCode : e.which;
    if (key == 13) {
        e.preventDefault();
        doSomething();
    }
}