Comment executer le code d'un bouton en appuyant sur une touche?
LionHearth
Messages postés3Date d'inscriptionlundi 24 mars 2003StatutMembreDernière intervention10 octobre 2006
-
5 oct. 2006 à 17:35
LionHearth
Messages postés3Date d'inscriptionlundi 24 mars 2003StatutMembreDernière intervention10 octobre 2006
-
10 oct. 2006 à 11:25
Bonjour,
Je cherche à appeler la procédure click d'un bouton en appuyant sur une touche.
Je m'explique... Je dois executer le code d'un bouton annuler en appuyant sur "A" et celui du bouton valider en appuyant sur "V".
j'ai donc pour ce faire écrit une fonction javascript qui intercepte le fait d'appuyer sur ces 2 touches et de renvoyer un message pour me le signaler.
Mon problème c'est que j'aimerais pouvoir appeler le code des bouton a executer au lieu de renvoyer les messages...
Je code dans Visual studio 2005 dans une masterpage. Je n'ai donc pas directement accès aux boutons que je desire appeler puisque ceux ci se trouve dans la partie "content" de la page asp.
Mais je cherche d'abord à pouvoir appeler/executer une procedure dans le code-behind de la page.
rubiks10
Messages postés224Date d'inscriptionlundi 19 décembre 2005StatutMembreDernière intervention 6 juin 20073 6 oct. 2006 à 01:08
Salut
A la place de tes alert( ... ) tu peux faire par exemple :
pour ton bouton annuler : document.getElementById(' id de ton bouton annuler').onclick();
pour ton bouton valider : document.getElementById(' id de ton bouton valider').onclick();
cela implique donc que le code a executer soient dans l'attribut onclick de chaque bouton ou qu'il soit externaliser vers d'autres fonctions javascript
dailleurs ta fonction n'interceptera jamais la touche A puisque tu fais un "return" avant....
LionHearth
Messages postés3Date d'inscriptionlundi 24 mars 2003StatutMembreDernière intervention10 octobre 2006 10 oct. 2006 à 10:59
Merci pour ta réponse tu m'a donné les pistes pour réussir...
Je n'ai pas tout à fait terminé. Et mon problème était un peu plus complexe. Je dois en fait générer un raccourci clavier pour chaque bouton se trouvant dans ma page Asp.net. Pour celà j'ai donc dû générer du code behind qui me permet de recupérer l'ensemble des contrôles bouton de la page en cours. Ensuite je récupère seulement la première lettre du bouton et je retranscris sa valeur en ascii, afin de pouvoir l'intercepter en javascript.. Je ne suis pas loin de la solution mais je gallère encore un peu.
L'idéale consiste ensuite un générer une légende dans la page qui renseigne l'utilisateur des touches qui active les boutons de la page en cours.
Voici Donc le Code behind que j'ai dû écrire pour pouvoir mettre en place l'activation des raccourcis claviers pour les boutons
Code se trouvant dans la masterPage :
const string strKeyCodeBtnName @"if (window.event.type 'keypress' && (window.event.keyCode == char2ascii('{0}') || window.event.keyCode == char2ascii('{1}')) ) ##- document.getElementById('{2}').onclick(); -##";
function char2ascii(cVALUE)
{
var aVALUE = '';
for (i=0;i<cVALUE.length;i++)
{
aVALUE += cVALUE.charCodeAt(i);
//aVALUE += cVALUE.charAt(i)+'='+cVALUE.charCodeAt(i);
}
return aVALUE;
}
</script>
Voilà, l'ensemble fonctionne mais mon problème est que pour le moment quand j'appuie sur la touche du bouton... je passe bien dans le if mais le document.getElementById('{2}').onclick(); ne s'execute pas... si je le remplace par une alert ... je vois bien que ca fonctionne puisaque l'alert s'affiche.
LionHearth
Messages postés3Date d'inscriptionlundi 24 mars 2003StatutMembreDernière intervention10 octobre 2006 10 oct. 2006 à 11:25
Je pense avoir compris mon problème...
en fait mon bouton est un asp:button. Seulement j'ai remarqué que le source de la page la valeur onclick n'apparaissait pas..
Je n'ai pas un bouton de la forme :
<
input type=button id="annuler" onclick="annuler();" value="annuler">
Mais de cette forme là :
Je ne vois pas apparaître le paramètre onclick.. Je pense donc que le navigateur n'arrive pas à interpréter le code :
Si quelqu'un sait comment faire pour pouvoir intégrer le parametre onclick visible dans un bouton Asp pour que celui ci puisse être affiché dans la source de la page html.
En tout cas merci d'avance... je posterais la solution si je trouve.