jquery拦截粘贴事件

标签 jquery

我已经从输入绑定(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/

相关文章:

jQuery:计算输入中所有不同字符的出现次数并与 Json 数组进行比较

php - 如何访问 URL 中 # 后面的值?

javascript - 未捕获的类型错误 : Cannot read property 'mouseX' of undefined

javascript - JQuery - 在页面加载时加载两个元素

javascript - 如何更改 extjs 容器的 css 类

javascript - HTML5 视频不会在 Chrome 和 Safari 上自动播放

javascript - 抑制和添加ajax调用参数

javascript - 是否可以在 title 属性中添加 html?

javascript - 禁用表单提交可防止发送按钮属性

javascript - 在按钮之前查找 div