我有一个文本字段,我将 paste
事件绑定(bind)到使用 JQuery。当我第一次将某些内容粘贴到表单字段并记录其 val()
时,它返回一个空字符串。同样,如果我再次粘贴到字段中,它会返回粘贴前的值。本质上我有一个竞争条件或排序问题,因为没有更好的术语。在粘贴事件完成之前,表单字段似乎不会更新。
在粘贴事件完成并实际填充该字段后, 是否有任何方法可以检查该字段的值?我想要实际的字段值,而不是剪贴板数据,因为我知道这是 IE 独有的功能。
$('#url').bind('paste', function(e) {
alert($(this).val());
});
最佳答案
事实证明,一个不错的解决方案是将回调包装在 setTimeout()
中,延迟 0 毫秒,以使其异步。
我的新代码是:
var urlField = $('#url');
urlField.bind('paste', function(e) {
setTimeout(function() {
alert(urlField.val());
}, 0); // note the 0 milliseconds
});
感谢DigitalBush's Masked Input Plugin , 它在整个源代码中都使用了这种技术。
关于javascript - 如何在粘贴事件期间获取字段的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2055224/