2010-10-22 6 views
0

Travailler avec asp.net, et j'essaie de trouver un moyen de modifier la touche de validation par défaut ENTER sur la cible côté client. Basé sur quelque chose comme la div ou l'entrée actuellement ciblée.configuration asp.net par défaut entrée presse côté client

la cible serait des contrôles de bouton asp.net avec un événement de publication.

Vous cherchez une solution pour IE et Firefox.

J'utilise également "WebForm_FireDefaultButton (event, controlId)" en essayant de définir le bouton par défaut mais cela ne fonctionne pas pour Firefox; travail bien pour IE tu.

grâce

Répondre

0

ici est la cause et la solution que je viens de trouver Asp.Net Form DefaultButton Error in Firefox

essentiellement, quel qu'en soit l'événement que vous préférez, appelez la fonction suivante « FireDefaultButton » pour régler le bouton de tir par défaut. La fonction out of box "WebForm_FireDefaultButton" n'est pas compatible avec Firefox (voir le lien pour plus de détails)

function FireDefaultButton(event, target) 
{ 
// srcElement is for IE 
var element = event.target || event.srcElement; 

if (13 == event.keyCode && !(element && "textarea" == element.tagName.toLowerCase())) 
{ 
    var defaultButton; 
    defaultButton = document.getElementById(target); 

    if (defaultButton && "undefined" != typeof defaultButton.click) 
    { 
     defaultButton.click(); 
     event.cancelBubble = true; 
     if (event.stopPropagation) 
      event.stopPropagation(); 
     return false; 
    } 
} 
return true; 
} 
0

Regardez la propriété Bouton par défaut d'un panneau de contrôle ASP.NET

+0

en essayant de tout configurer du côté client. – Eatdoku

+0

Dans ce cas, vous devrez regarder quelque chose comme ceci: http://www.devx.com/vb2themax/Tip/18846 – bechbd

0

Il est trop difficile de répondre à cette question sans connaître le contexte. De manière générale, vous devez préparer javascript avec les actions requises, puis ajouter quelque chose comme

onkeydown = "if (événement.keyCode == 13) submitForm(); if (event.keyCode == 27) cancelLogin();"

côté client ou quelque chose de similaire sur le côté du serveur à l'action produisant des contrôles. L'exemple ci-dessus fait référence à MVC. Pour WebForms, vous pouvez utiliser __doPostBack au lieu de ma fonction submitForm() (link text). Habituellement, j'ai utilisé ce scénario avec des entrées (contrôles TextBox pour WebForms).

+0

c'est en fait ce que j'ai fait, j'appelle __doPostBack (contrôle, '') mais sur le côté serveur il ne va pas dans le gestionnaire d'événements. Mais si je clique sur le bouton cela fonctionnerait correctement. La capture de la touche Entrée fonctionne correctement. – Eatdoku

+0

Cela peut être dû à la dénomination complexe des contrôles. L'avez-vous utilisé comme ceci __doPostBack ('<% = btnSignIn.UniqueID%>', ''); ? – ILog

Questions connexes