1

JS の onpaste イベントに問題があります。クリップボードの内容を半分に分割して 2 つのテキスト ボックスにコピーする必要があります。以下のコードを使用しています。

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

この関数はonpasteイベントで呼び出されます。コンテンツは貼り付けられますが、関数の後、データが貼り付けられたボックスに文字列全体が再度貼り付けられます。

cancelbubble万が一、paste()関数でetcを使ってイベントをキャンセルすることで、イベントをキャンセルすることはできませんか? ??

前もって感謝します

4

1 に答える 1

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

于 2013-10-21T13:40:45.753 に答える