繁体   English   中英

在onchange事件中将焦点放在文本框上

[英]Putting focus on a textbox in onchange event

我试图获取它,以便当将某个值放入文本框时,焦点将停留在文本框上(并且警报将在生产环境中显示)。 我试图让它在Firefox 3.5.7中正常工作。

当文本框在onchange上具有某个值时,如何保持其焦点/重新聚焦在文本框上,我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错误或警告。

当触发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>

根据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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM