我试图将onkeydown属性添加到asp:textbox。由于某种原因,我的代码无法找到loginview内的文本框。
难道我做错了什么?
<script type="text/javascript">
window.onload = function() {
UserName.Attributes.Add("onKeyDown", "KeyDownHandler('" + btn.ClientID + "')");
Password.Attributes.Add("onKeyDown", "KeyDownHandler('" + btn.ClientID + "')");
}
function KeyDownHandler(btn)
{
if (event.keyCode == 13)
{
event.returnValue=false;
event.cancel = true;
document.getElementById(btn).click();
}
}
</script>
最佳答案
您的代码正在尝试在客户端脚本中添加事件处理程序属性。这需要在服务器端代码块中发生。就像是:
<script runat="server">
UserName.Attributes.Add("onKeyDown", "KeyDownHandler('" + btn.ClientID + "')");
Password.Attributes.Add("onKeyDown", "KeyDownHandler('" + btn.ClientID + "')");
</script>
<script type="text/javascript">
function KeyDownHandler(btn)
{
if (event.keyCode == 13)
{
event.returnValue=false;
event.cancel = true;
document.getElementById(btn).click();
}
}
</script>
或者,如果您有代码隐藏页,则将属性.Add调用放在PreRender事件中。