1

我试图得到它,以便当将某个值放入文本框时,焦点将停留在文本框上(并且在生产中将显示警报)。我试图让它在 Firefox 3.5.7 中工作,但没有运气。

当文本框具有特定值时onchange,我该如何做到这一点,它将保持聚焦/重新聚焦在文本框上?

现场示例位于http://jsbin.com/ipina

<body>
Enter your name: <input type="text" name="fname" id="fname" onchange="
  if(this.value=='foo'){
    this.select();
    this.focus();
  }
  "  />
</body>

此外,在执行此代码时,我在错误控制台中没有收到任何 javascript 错误或警告。

4

2 回答 2

2

触发事件时onchange,用户将注意力集中在文本框上。

如果值为“foo” ,您可能希望使用该blur事件重新关注文本框。

如果您需要即时结果,则应使用onkeyup.

<body>
Enter your name: <input type="text" name="fname" id="fname" onkeyup="
  if(this.value=='foo'){
    this.select();
    this.focus();
  }
  "  />
</body>
于 2010-01-19T22:59:53.387 回答
1

根据IE 和 FireFox 中的 Javascript onchange 不同,我需要在 onchange 事件发生后设置焦点,所以我不得不结束这样的事情:

Enter your name: <input type="text" name="fname" id="fname" onblur="
  if(this.value=='foo'){
    alert('bah');
    setTimeout('document.getElementById(\'fname\').focus();document.getElementById(\'fname\').select();',0);
  }
  "  />

而且我必须在失去焦点时捕捉它,不一定是在文本改变时,所以我不得不使用 onblur 而不是 onchange。

直播:http: //jsbin.com/ofeva

于 2010-01-19T23:24:34.910 回答