我正在编写一个 ASP.NET 应用程序,并且有一个表单,用户必须按一个键才能使文本框可见,以便他/她可以登录。当按下该键时,我希望标签消失并且文本框变得可见。由于某种原因,“onkeydown”事件在 FF 或 IE 中没有触发,但在 Chrome 中工作正常。该应用程序将使用链接浏览器在 AML 终端上运行,但我现在无法在该平台上进行测试。这是我的代码:
<form id="form1" runat="server" onkeydown="CheckKey(event.keyCode)"
enableviewstate="True" submitdisabledcontrols="False" visible="True">
<script type="text/javascript">
function SetVisibility() {
var txtbx = document.getElementById("txtbx_login")
txtbx.style.display = "none";
var form = document.getElementById("form1")
}
function CheckKey(keycode) {
if (keycode == 113) {
var txtbx = document.getElementById("txtbx_login")
txtbx.style.display = "";
var lbl = document.getElementById("lbl_login")
lbl.style.display = "none";
}
}
</script>
*****其他表单元素******
</form>
能够使 onkeydown 事件起作用的唯一方法是文本框控件是否显示并具有焦点。我错过了什么吗?感谢您的帮助!
最佳答案
我认为问题在于 onkeydown 检查是在表单上进行的。
尝试将其移动到 body 元素,或者更好的是,使用 javascript 将事件处理程序添加到窗口事件:
function handleKeypress(e){
var keycode = e.keyCode || e.charCode;
if (keycode == 113) {
var txtbx = document.getElementById("txtbx_login")
txtbx.style.display = "";
var lbl = document.getElementById("lbl_login")
lbl.style.display = "none";
}
}
window.onkeypress = handleKeypress;
在 Firefox 中,您还需要使用 event.charCode。我尚未在所有浏览器中测试上述内容,但这是一个开始。
关于asp.net - html 表单的 onkeydown 事件在 IE 7 或 FF 3 中未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/865693/