我试图将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>

或者,如果您有代码隐藏页,则将属性.A​​dd调用放在PreRender事件中。

07-24 09:49
查看更多