onChange
イベントに関連付けられた Javascript 関数があります。onPaste
一部のブラウザーがドキュメントまたは要素レベルでサポートしていることを理解しています。イベントが「貼り付け」によって発生したかどうかを判断する方法はありますか-起動onChange
時に設定されるグローバル変数を追加して、ルーチンの最後にリセットしようとしましたが、関数が取得されるという保証はありませんの前に呼び出されます。onPaste
onChange
onPaste
onChange
質問する
5036 次
4 に答える
1
onChange の代わりに onKeyPress/onKeyUp/onKeyDown/onPaste を使用できます。
于 2010-11-08T15:25:54.110 に答える
1
これは私にとってはうまくいきました:
<input type="text" onchange="ValueChanged(event, this);" onpaste="this.setAttribute('pasted', '1');"/>
<script type="text/javascript">
function ValueChanged(evt, sender) {
var blnCameFromPaste = ((sender.getAttribute("pasted") || "") == "1");
if (blnCameFromPaste)
alert("changed by paste");
else
alert("changed without paste");
sender.setAttribute("pasted", "0")
}
</script>
于 2010-11-04T17:47:34.893 に答える
0
これを普遍的に行うことはできないと思います。この機能のテストの現在の状態を参照してください。
貼り付けを検出する 1 つの方法は、フィールドがフォーカスされてから「キーを押す」までの時間をカウントすることです。
于 2010-11-04T17:25:45.043 に答える
0
onchange イベントが発生するたびに、フィールドの値の現在の長さを以前の長さと比較し、現在の時刻と以前の時刻を比較します。人が入力できると思われる速度よりも速く文字が入力された場合、文字は貼り付けられているに違いありません。
于 2010-12-07T08:20:46.230 に答える