首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在文本字段上触发退格键?

如何在文本字段上触发退格键?
EN

Stack Overflow用户
提问于 2011-08-03 10:45:53
回答 3查看 35.2K关注 0票数 15

假设我有这个:

代码语言:javascript
运行
复制
<textarea id="myarea">Hello</textarea>

我如何使用触发器()和按键代码来触发文本区域上的退格键。backspace的代码是8。我不是在找这个:

代码语言:javascript
运行
复制
$('#myarea').val( $("myarea").val().slice(0,-1) );

我需要模拟某人实际按下键盘上的“退格键”。谢谢

EN

回答 3

Stack Overflow用户

发布于 2011-08-03 10:51:34

您可以创建一个keydown事件:

代码语言:javascript
运行
复制
var e = jQuery.Event("keydown", { keyCode: 20 });

然后在你的文本区域中触发它:

代码语言:javascript
运行
复制
$("#myarea").trigger( e );

更新:

在做了更多的研究和测试之后,我意识到这个解决方案不能在元素上模拟自然的按键事件。此方法仅触发keydown事件,它不会复制进入元素并按下该键的用户。

要模拟用户进入该文本框并按下该键,您必须创建一个dispatch event

调度事件也不是全局支持的。最好的方法是触发keydown事件,然后根据需要更新文本区域。

票数 13
EN

Stack Overflow用户

发布于 2011-08-03 10:53:01

我发现了这个:

http://forum.jquery.com/topic/simulating-keypress-events (答案2)。

像这样的东西应该可以工作,或者至少给你一个想法:

代码语言:javascript
运行
复制
<div id="hola"></div>

代码语言:javascript
运行
复制
$(function(){
    var press = jQuery.Event("keyup");
    press.ctrlKey = false;
    press.which = 40;

    $('#hola').keyup(function(e){
        alert(e.which);
    })
   .trigger(press); // Trigger the event
});

演示:http://jsfiddle.net/qtPcF/1/

票数 8
EN

Stack Overflow用户

发布于 2017-12-03 09:46:09

你不应该让强制在js中发生关键事件。请尝试模拟字符移除。

代码语言:javascript
运行
复制
const start = textarea.selectionStart - 1;
const value = textarea.value;
const newValue = value.substr(0, start) + a.substr(start);
textarea.value = newValue;

或者,如果您只是想要事件,则直接调用处理程序,而不是强制事件。这太老套了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6921111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档