貼り付け後にテキストエリアに入力されたデータを評価しようとしています。onkeyup を使用すると、問題がないかどうかが検出され、ユーザーが Cntl-V を使用して貼り付けたときに評価が正常に行われます。右クリックして貼り付けを選択しても何もしません。Cntl-V と右クリックによる貼り付けの両方を検出する onkeyup から onpaste に変更しましたが、データがありません。実際の貼り付けが実行される前に onpaste がトリガーされることを知っているので、setTimeout() で評価を遅らせようとしましたが、5 秒の遅延があっても関数関数が完了するまでデータを取得しません。何をしても、入力されたアイテムの数を数えることができないようです。これが私のコードです:
function delayStart() {
alert("delayStart() function");
var inData = " ";
setTimeout(function()
{inData = document.getElementById("loanNumberPaste").value},
5000);
var iData = inData.value;
alert("iData = " + iData);
setTimeout(fnUpdCt(iData),5000);
}
function fnUpdCt(vId) {
var strVId = vId.value;
alert("fnUpdCt() function \n" +
"vId = " + strVId);
var i;
var iVal = vId.value;
var vCt = 0;
iVal = iVal.replace(/\s/g,' ');
iVal = iVal.split(' ');
for (i=0; i < iVal.length; i++) {
if (iVal[i].length > 0) {vCt++;}
}
document.getElementById("loanNumberCount").value = vCt;
}
<textarea id="loanNumberPaste" rows=17 cols=37 tabindex="1"
onpaste="delayStart();";onkeyup="fnUpdCt(this);"></textarea>
アドバイスをいただければ幸いです。