javascript - 是否可以在不使用 setTimeout() 函数的情况下获取粘贴的文本?

标签 javascript jquery events timeout paste

我发现当使用鼠标粘贴文本(即 Hello)时,以下函数将抛出一个空的弹出窗口:

$('input:text').onpaste = function()
{
    alert($('input:text').val());
});

问题是,当触发 onpaste 事件时,文本还没有实际粘贴到输入字段(至少这是我的猜测)。因此将函数更改为:

$('input:text').onpaste = function()
{
    setTimeout(function()
    {
        alert($('input:text').val()
    }, 100);
}

通过在粘贴到输入字段时显示带有文本 Hello 的弹出窗口来给出正确的结果。

现在我的问题是:是否有可能在不使用 setTimeout() 函数的情况下捕获粘贴的文本?这个解决方法看起来很脏,所以我不想使用它。

kkthxbai xon1c

最佳答案

你可以使用oninput事件代替,现代浏览器支持这种方法

http://jsfiddle.net/pxfunc/KDLjf/

$('input').bind('input', function(e) {
    console.log($(this).val());
}); 

关于javascript - 是否可以在不使用 setTimeout() 函数的情况下获取粘贴的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6398275/

相关文章:

javascript - 如何获取我们在谷歌地图中放置街景小人的点的坐标

javascript - 实时使用 Node.js : WebSocket + Server-Side Polling vs. 客户端轮询

javascript - 在 JavaScript 中添加/删除调整大小的类

jquery - 使用 jquery 更改另一个字段时如何触发隐藏表单字段值的更改

Javascript 滑入加载

javascript - jQuery Bootstrap 对话框 $backdrop 未定义

javascript - 如何使用 Meteor 事件转动按钮并反转它们?

javascript - 为什么我无法删除窗口上的 'resize' 事件?

go - 捕获按键按下/向上事件

javascript - 在文本框中自动填充逗号和小数