Can';在Javascript中找不到asp:textbox

Can';在Javascript中找不到asp:textbox,javascript,textbox,enter,onkeydown,Javascript,Textbox,Enter,Onkeydown,我正在尝试将onkeydown属性添加到asp:textbox。由于某些原因,我的代码找不到loginview中的文本框 我做错什么了吗 <script type="text/javascript"> window.onload = function() { UserName.Attributes.Add("onKeyDown", "KeyDownHandler('" + btn.ClientID + "')"); Password.Attributes.Add("o

我正在尝试将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>

window.onload=函数(){
UserName.Attributes.Add(“onKeyDown”、“KeyDownHandler(“+btn.ClientID+”)”);
Add(“onKeyDown”、“KeyDownHandler(“+btn.ClientID+”)”);
}
函数KeyDownHandler(btn)
{
如果(event.keyCode==13)
{
event.returnValue=false;
event.cancel=true;
document.getElementById(btn).click();
}
}

尝试以下方式连接事件处理程序参数:

<script type="text/javascript">
    window.onload = function() {
    UserName.Attributes.Add("onKeyDown", "KeyDownHandler(this)");
    Password.Attributes.Add("onKeyDown", "KeyDownHandler(this)");
}

function KeyDownHandler(domButton)
{
    if (event.keyCode == 13)
    {
        event.returnValue=false;    
        event.cancel = true;
        domButton.click();
    }
}
</script>

window.onload=函数(){
UserName.Attributes.Add(“onKeyDown”、“KeyDownHandler(this)”);
Add(“onKeyDown”、“KeyDownHandler(this)”);
}
函数KeyDownHandler(domButton)
{
如果(event.keyCode==13)
{
event.returnValue=false;
event.cancel=true;
domButton.click();
}
}

您的代码正在尝试在客户端脚本中添加事件处理程序属性。这需要在服务器端代码块中发生。比如:

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

UserName.Attributes.Add(“onKeyDown”、“KeyDownHandler(“+btn.ClientID+”)”);
Add(“onKeyDown”、“KeyDownHandler(“+btn.ClientID+”)”);
函数KeyDownHandler(btn)
{ 
如果(event.keyCode==13)
{ 
event.returnValue=false;
event.cancel=true;
document.getElementById(btn).click();
} 
} 

或者,如果您有代码隐藏页,请在PreRender事件中添加属性。添加调用。

在您的aspx文件中,添加将现有用户名和密码文本框绑定到名为KeyDownHandler的客户端事件处理程序的服务器脚本:

<script runat="server">
   protected void Page_Load(object sender, EventArgs e)
   {
      TextBox userNameControl = FindControl("UserName") as TextBox;
      TextBox passwordControl = FindControl("Password") as TextBox;

      if (userNameControl != null)
         userNameControl.Attributes.Add("onKeyDown", "KeyDownHandler(this)"); 

      if (passwordControl != null)
         passwordControl.Attributes.Add("onKeyDown", "KeyDownHandler(this)"); 
   }
</script>

受保护的无效页面加载(对象发送方、事件参数e)
{
TextBox userNameControl=FindControl(“用户名”)作为TextBox;
TextBox passwordControl=FindControl(“密码”)作为TextBox;
if(userNameControl!=null)
添加(“onKeyDown”、“KeyDownHandler(this)”;
if(passwordControl!=null)
Add(“onKeyDown”、“KeyDownHandler(this)”);
}
然后声明事件处理程序的客户端脚本:

<script type="text/javascript">
function KeyDownHandler(domButton) 
{ 
    if (event.keyCode == 13) 
    { 
        event.returnValue=false;     
        event.cancel = true; 
        domButton.click(); 
    } 
} 
</script>

函数KeyDownHandler(domButton)
{ 
如果(event.keyCode==13)
{ 
event.returnValue=false;
event.cancel=true;
domButton.click();
} 
} 

我尝试了这一点,但似乎得到了错误:Message:'UserName'是未定义的行:18 Char:5 code:0 URI:这也是:Message:Object不支持此属性或方法行:28 Char:9 code:0 URI:您的属性。Add()调用必须位于
标记中,KeyDownHandler()必须位于客户端脚本部分(也就是说,一个
我从中得到了错误。用户名和密码需要声明您的aspx文件中有
吗?这是一个母版页。我在loginview中有用户名和密码文本框。我是否必须指定loginview?我该如何做?loginview#用户名?您也可以使用View。)源代码在发出的最终html上,找出那个些user/pass元素的呈现id,并按照原始示例使用javascript直接在onload事件中连接事件声明。这肯定行不通。您在一个脚本中同时使用VB和Javascript控件。实际上,它是C#(服务器)和Javascript(客户端),看起来肯定不是在同一时间。当然,我假设您的页面包含
Language=“C#”
指令,这样
就不需要指定它所用的语言。祝你好运。不。这只会给我带来大约10-12个错误。我将发布一个新问题,要求用VB回答。