2017-11-22 22 views
-1

貼り付けられたテキストをテキストボックスでチェックして検証しますが、常に空白です。貼り付けイベントで値を取得できません

テキストを貼り付けるときにテキストを取得するにはどうすればよいですか?

function alertandclear(obj) { 
 
console.log('->' + obj.value); 
 
obj.value = ""; 
 
}
<input type="text" onpaste="setTimeout(alertandclear(this),100)"/>

+0

2つのdownvotersのPLSのいずれかが彼らの行動を説明できますか? – Imad

+0

'setTimeout(alertandclear(this))'はsetTimeoutを使用する方法ではありません。関数名の後に '()'を追加すると、直ちに呼び出されます。したがって、setTimeoutはコールバックとして未定義に渡され、何もしません – Rajesh

答えて

3

あなたはsetTimeout(alertandclear(this),100)を呼び出している代わりに、あなたは、関数の参照を渡す必要が

function alertandclear(obj) { 
 
console.log('->' + obj.value); 
 
obj.value = ""; 
 
}
<input type="text" onpaste="setTimeout(alertandclear.bind(null,this),100)"/>

0

以下のように、あなたはsetTimeoutで関数への参照を持つべきですか内の表現。 link。ここに私がしたことがあります。

document.getElementById("myInput").addEventListener("paste",function(){ 
 
      var element = this; 
 
      setTimeout(function(){console.log(element.value);element.value='';},100,element); 
 
    });
<input id="myInput" type="text" />

関連する問題