2010-06-09 5 views
3

J'essaie d'ajouter l'attribut onkeydown à un asp: textbox. Pour une raison quelconque, mon code ne peut pas trouver la zone de texte qui se trouve dans une vue de connexion.Impossible de trouver asp: zone de texte en Javascript

Est-ce que je fais quelque chose de mal?

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

Répondre

1

Votre code tente d'ajouter le gestionnaire d'événements attributs dans le script client. Cela doit se produire dans un bloc de code côté serveur. Quelque chose comme:

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

Alternativement, si vous avez une page code-behind, placez les appels attribut.Add dans l'événement PreRender.

+0

Je reçois des erreurs de cela. Déclaration prévue pour UserName et Password – BioXhazard

+0

Avez-vous '' et '' dans votre fichier aspx? – Humberto

+1

Ceci est une page maître. J'ai les zones de texte UserName et Password dans une vue de connexion. Dois-je spécifier le loginview peut-être? – BioXhazard

-1

Essayez le câblage du paramètre du gestionnaire d'événements de cette façon:

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

J'ai essayé ceci et je semble avoir l'erreur: Message: 'UserName' est indéfini Ligne: 18 Char: 5 Code: 0 URI: http: // localhost: 1972/TiltonSite/ – BioXhazard

+0

Cela aussi: Message: Cet objet ne gère pas cette propriété ou méthode ligne: 28 Char: 9 code: 0 URI: http: // localhost: 1972/TiltonSite/ – BioXhazard

+0

Vos appels Attributes.Add() doivent être dans une balise '