J'ai une page aspx que postsback quand il ne devrait pas. il y a deux zones de texte, deux zones de liste et deux boutons sur la page. si vous appuyez sur la touche Entrée à n'importe quel moment, le premier bouton est activé et "cliqué", ce qui entraîne une perte de sélection dans les listes déroulantes.
Comment puis-je désactiver ceci? il y a des tonnes de tutoriels sur la façon de capturer le bouton d'entrée et d'exécuter une méthode, mais je pourrais en trouver un sur la façon de désactiver simplement la fonctionnalité "laissez-moi saisir le premier bouton que je trouve et cliquez dessus" mentionnée ci-dessus.
Je préférerais le second si je voulais empêcher complètement les postbacks sur Enter.
utilisez-vous jQuery?
si c'est le cas:
$(document).keypress(function(e)
{
if(e.keyCode === 13)
{
e.preventDefault();
return false;
}
});
Utilisez le code ci-dessous pour désactiver la clé d'entrée provoquant la publication. Ce morceau de code bloquera la touche Entrée dans tous les navigateurs 4.0 ci-dessus, sauf si vous appuyez sur Entrée dans une zone de texte ou sur le bouton Envoyer lui-même.
<script language="JavaScript">
var nav = window.Event ? true : false;
if (nav) {
window.captureEvents(Event.KEYDOWN);
window.onkeydown = NetscapeEventHandler_KeyDown;
} else {
document.onkeydown = MicrosoftEventHandler_KeyDown;
}
function NetscapeEventHandler_KeyDown(e) {
if (e.which == 13 && e.target.type != 'textarea' && e.target.type != 'submit') {
return false;
}
return true;
}
function MicrosoftEventHandler_KeyDown() {
if (event.keyCode == 13 && event.srcElement.type != 'textarea' &&
event.srcElement.type!= 'submit')
return false;
return true;
}
</script>
Ne mettez ceci que sur votre contrôle ASP.Net TextBox:
<asp:TextBox ID="TextBox1" runat="server"
onkeydown = "return (event.keyCode!=13);" >
</asp:TextBox>
Il s’agit du comportement par défaut d’une application Web. Vous pouvez suivre l’un des didacticiels que vous avez trouvés et masquer ce comportement en abandonnant simplement le processus de soumission.
<body onkeydown = "return (event.keyCode!=13)">