0

有一个文本框与onkeyup事件侦听器相关联(一个 JavaScript 函数,比如说提醒某些东西)。举个例子——

<input type='text' name='text1' onkeyup='exec(this.value);'/>
<script>
exec = function(textdata) { alert(textdata); }
</script>

在这种情况下,每次用户敲击键盘上的东西时都会出现警报消息。

是否有任何处理方式,事件处理程序仅在几秒钟不活动后才会继续。也就是说,在这种情况下,只有当用户输入了长文本并且正在考虑是否要添加更多内容时,才会出现警报消息。例如,他输入他的名字并等待 2 秒钟,然后出现警报消息,并且在他输入他的名字的每个字母时不会出现警报消息。

4

2 回答 2

1

您需要使用onkeyup而不是onchange希望每次按下键时都运行一个函数。试试这个你想要的功能

<input type='text' name='text1' onkeyup='exec(this.value);'/>
<script>

var timer; //This needs to be a global variable

exec = function(textData){

  clearTimeout(timer);

  timer = setTimeout(function(){ alert(textData) }, 2000);  
}
</script>

每次用户按下一个键(在文本框中输入一个字符)时,都会调用该函数并清除计时器。然后将计时器设置为在 2 秒后提醒文本框的值,如果他们在 2 秒过去之前再次按下任何键,则计时器将重置。是一个工作的jsFiddle。

于 2012-09-17T09:07:56.520 回答
0

在您的代码中,仅在您每次离开文本框时才会提醒文本。这就是 的行为onchange。你需要在它被触发之前失去对它的关注。

onkeyup每次alert()用户在文本框中按下某些东西时。

于 2012-09-17T09:04:07.263 回答