按下Enter键后清除文本区域输入 [英] Clear textarea input after enter key press

查看:86
本文介绍了按下Enter键后清除文本区域输入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用JavaScript创建一些聊天应用程序,该应用程序允许在按下Enter键后发送消息

I was creating some chat application using JavaScript that allows one to send a message after the enter key is pressed

window.onkeydown=function(event){
    if(event.keyCode==13){
        sendNew();
    }
}

sendNew()函数中;

var msg=document.getElementById('txt').value.toString().trim();
    if(msg!=="") {
    //send message        
    document.getElementById('txt').value = "";
    }

当文本区域为 onfocus 时按Enter键,文本将被清除,但似乎插入了新的换行符,光标将移至文本区域的下一行.

When you press the enter key when the textarea is onfocus the text is cleared but it seems to insert a new line character and the cursor goes to the next line in the textarea.

如何摆脱这种情况,并拥有一个完全空白的文本区域?

How can I get rid of this and have a completely empty textarea?

推荐答案

您要做的是取消按Enter键时浏览器的默认行为(您必须防止浏览器添加新行).

What you have to do is to cancel the default behaviour of the browser when pressing enter key (you have to prevent the browser from adding a new line).

解决方案:使用 event.preventDefault().说明文件: https://developer.mozilla.org/en/docs/Web/API/Event/preventDefault

Solution: use event.preventDefault(). Documentation: https://developer.mozilla.org/en/docs/Web/API/Event/preventDefault

尝试以下代码:

window.onkeydown=function(event){
    if(event.keyCode==13){
        sendNew();
        if(event.preventDefault) event.preventDefault(); // This should fix it
        return false; // Just a workaround for old browsers
    }
}

一些开发人员忘记了 event.preventDefault 并写了 returnfalse 代替.这是一个不好的做法,我建议您新方法.

Some developers forget about event.preventDefault and write return false instead. This is a bad practice, and I would suggest you the new method.

这篇关于按下Enter键后清除文本区域输入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆