我发现当使用鼠标粘贴文本(即 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/