我已经从输入绑定(bind)了粘贴事件:
$(document).ready(function(){
$('.myInput').bind("paste",function(e) {
console.log(e);
});
});
每次我按下 CTRL-V 时,它都会返回 e
事件对象。
我想获取用户要粘贴到输入中的数据。
通过检查事件对象,我在几个地方找到了该值,例如:
e.srcElement.value
e.target.value
但是这些在粘贴发生后返回输入中的值。因此,如果我在输入另一个字符串后粘贴一些文本,我会将两个字符串连接起来。
我在互联网上进行了搜索,除了丑陋的 Flash 解决方案之外什么也没找到。
有没有一种干净的方法可以在 jquery 中执行此操作?
我想过在粘贴之前获取输入值e.srcElement.value
后获取整个文本,然后比较两个字符串并消除第一部分,返回依次计算剪贴板的值。
最佳答案
也许这就是您想要做的,但不是 100% 确定:
HTML:
<input type="text" id="test" class="myInput" value="This is some default text" />
jQuery:
$(document).ready(function () {
$('input').on('paste', function (e) { //Attach paste event handler for all inputs
$(this).val('').val(e.target.value); //Clear the current value, then insert the value of the data that was pasted
});
});
fiddle :http://jsfiddle.net/PMq6U/
关于jquery拦截粘贴事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13964592/