javascript - 清除后恢复到文本区域框的开头

标签 javascript jquery html css

我有一个文本区域,在用户按下回车键后我会清除它。我想将光标重置到文本区域的开头,但由于某种原因,它被放置在第二行的开头,并在第二次按下 Enter 时返回一个空行和文本。第二次按下 Enter 时,文本被清除,插入符号保留在第二行,只有第一次才会转到第二行。

$(function(){
    var chatArea;
    chatArea = $("#chattingArea").keypress(function(event){
        if(event.which === 13){
            console.log($("#theTextbox").val());
            $("#theTextbox").val("");
            $("#theTextbox")[0].setSelectionRange(0, 0);
        }
    });
});

HTML:

` 聊天软件

<div id="chattingArea">
    <textarea id="theTextbox"></textarea>
</div>
<div id="chat">

</div>

<script src="bower_components/jQuery/dist/jquery.min.js"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="bower_components/jquery-ui/ui/minified/jquery-ui.min.js"></script>
<script src="chatApp.js"></script>
</body>

`

最佳答案

使用 keyup 而不是 keypress 来防止在文本区域调用 native keypress 事件

HTML

<textarea rows="4" cols="50" id="chat">
At w3schools.com you will learn how to make a website. We offer free tutorials in all web development technologies. 
</textarea>

Jquery

$("#chat").keyup(function(e){
    if(e.which === 13){
        $("#chat").val("");
    }
})

Demo JSfiddle

关于javascript - 清除后恢复到文本区域框的开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23881391/

相关文章:

javascript - 如何使用javascript检查值是否大于另一个值

javascript - 我可以监视 HTML DIV 上的更改吗?

javascript - 将日期选择器应用于同一网页的多个实例

jquery - 如何删除自动完成中的重复项

html - 带有 zurb 基础的水平导航

php - 添加另一个下拉列表到动态 php、Mysql 表单以及另外 2 个下拉列表

javascript - 添加OnError后出现异常错误

javascript - jquery 输入 keyup 函数不起作用

jquery - 淡入前出现的图像

javascript - 尝试使用 Shuffle.js 但出现 Uncaught TypeError : Shuffle is not a constructor