我正在努力获取它,以便当将某个值放入文本框时,焦点将保留在文本框中(并且将在生产中显示警报)。我试图让它在Firefox 3.5.7中运行,没有运气。
如果文本框在onchange
处是特定值,它将保持聚焦/重新聚焦在文本框上,我该怎么做呢?
<body>
Enter your name: <input type="text" name="fname" id="fname" onchange="
if(this.value=='foo'){
this.select();
this.focus();
}
" />
</body>
此外,执行此代码时,我在错误控制台中没有收到任何javascript错误或警告。
答案 0 :(得分: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>
答案 1 :(得分:1)
根据Javascript onchange different in IE and FireFox我需要在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。