onpaste事件替换文本框中的文本

时间:2013-01-20 12:50:32

标签: javascript javascript-events onpaste

我在JS中的onpaste事件有问题。 我需要通过将剪贴板内容分成两半来将剪贴板内容复制到2个文本框中。我正在使用下面的代码。

function paste(){
document.getElementById("txt1").value = clipboarddata.substr(0,2);
document.getElementById("txt2").value = clipboarddata.substr(2,4);
}

onpaste事件上调用此函数。内容被粘贴,但在函数之后,整个字符串再次粘贴到粘贴数据的框中。

我是否可以通过使用cancelbubble等取消事件来取消粘贴()函数中的事件。 ??

提前致谢

1 个答案:

答案 0 :(得分:0)

我知道这有点晚了,但对于那些寻找此事的人来说,这是一种方法:

完成所需操作后,您必须return false;这将阻止默认处理程序运行。

这是一个演示:

HTML

<textarea id="txt1"></textarea>
<textarea id="txt2"></textarea>

的Javascript

var myElement = document.getElementById('txt1');
myElement.onpaste = function (e) {
   var pastedText = undefined;
   if (window.clipboardData && window.clipboardData.getData) { // IE
      pastedText = window.clipboardData.getData('Text');
   } else if (e.clipboardData && e.clipboardData.getData) {
      pastedText = e.clipboardData.getData('text/plain');
   }
   document.getElementById("txt1").value = pastedText.substr(0, pastedText.length / 2);
   document.getElementById("txt2").value = pastedText.substr(pastedText.length / 2 + 1, pastedText.length);
   return false; // Prevent the default handler from running.
};

jsfiddle demo