jquery如何获取粘贴的内容

我在输入中捕获粘贴的文本时遇到一些麻烦:

 $('#myid').on('paste',function(){ console.log($('#myid').val()); }); 

console.log显示:

 default 

我如何catch粘贴的文本并准备使用?

现代浏览器现在支持input事件,该事件将在粘贴内容后触发

 $('#myid').on('input', function() { console.log($('#myid').val()); }); 

粘贴到输入时,在值有更新时间之前触发paste事件。
解决此问题的一种方法是推迟获取值,直到输入有时间更新:

 $('#myid').on('paste', function() { setTimeout(function () { console.log($('#myid').val()); }, 100); }); 

通过访问event.clipboardData ,还可以直接从剪贴板获取数据,而不是从输入值获取event.clipboardData ,但是这种技术是实验性的,并非在所有浏览器中都支持,并且在我看来比使用input事件更加hacky,或者即使是简单的超时。

接受的答案实际上是hacky和丑陋,似乎经常建议stackoverflow上的粘贴事件。 我认为更好的方法就是这样做

 $('#someInput').bind('paste', function(e) { var data = e.originalEvent.clipboardData.getData('Text'); //IE9 Equivalent ==> window.clipboardData.getData("Text"); }); 

试试这个或添加一个timeOut:

  $('#myid').on('paste',function(){ console.log(this.value); });