如何在粘贴事件期间获取字段的值?

我有一个文本字段,我将paste事件绑定到使用JQuery。 当我第一次将某些东西粘贴到表单字段并记录其val()它返回一个空字符串。 同样,如果我再次粘贴到字段中,它会粘贴之前返回先前的值。 基本上我有一个竞争条件或排序问题,因为缺乏一个更好的术语。 在粘贴事件完成之前,表单字段似乎不会更新。

在粘贴事件完成并且实际填充了字段 ,有没有办法检查字段的值? 我想要实际的字段值,而不是clipboardData,因为我知道这是一个仅限IE的function。

 $('#url').bind('paste', function(e) { alert($(this).val()); }); 

事实certificate,一个不错的解决方案是将回调包装在setTimeout() ,延迟为0毫秒,以使其异步。

我的新代码是:

 var urlField = $('#url'); urlField.bind('paste', function(e) { setTimeout(function() { alert(urlField.val()); }, 0); // note the 0 milliseconds }); 

感谢DigitalBush的Masked Input Plugin ,它在整个源代码中使用了这种技术。