Solution: Placez le code suivant vers la fin de toutes vos pages qui contiennent des formes:
<!-- Block the Backspace and Enter keys in forms, outside of input texts and textareas -->
<script type="text/javascript">
function blockBackspaceAndEnter(e) {
if (!e) { // IE reports window.event instead of the argument
e = window.event;
}
var keycode;
if (document.all) {
// IE
keycode = e.keyCode;
} else {
// Not IE
keycode = e.which;
}
// Enter is only allowed in textareas, and Backspace is only allowed in textarea and input text and password
if ((keycode == 8
&& e.srcElement.type != "text"
&& e.srcElement.type != "textarea"
&& e.srcElement.type != "password")
|| (keycode == 13 && e.srcElement.type != "textarea")) {
e.keyCode = 0;
if (document.all) {
// IE
event.returnValue = false;
} else {
// Non IE
Event.stop(e);
}
}
}
for (var i = 0; i < document.forms.length; i++) {
document.forms[i].onkeydown = blockBackspaceAndEnter;
}
</script>
j'ai les commentaires suivants ce que les autres ont répondu ici avant:
Quelqu'un a dit:
"S'il vous plaît ne pas. Les utilisateurs aiment backspace-to-go-back; . Retourne est l'une des caractéristiques du navigateur le plus vital et la rupture est insupportablement grossier »
Ma réponse lui est:
Oui, en général les gens utilisent-ils le dos-bouton pour revenir en arrière , MAIS PAS sur les pages avec des formulaires. D'autre part, il est vraiment facile pour les gens à cliquer accidentellement près ou à l'extérieur d'un texte d'entrée ou textarea, puis appuyez sur le bouton de retour, ils perdront toutes leurs modifications, comme quelqu'un d'autre a également remarqué:
« les utilisateurs ne sont pas dans une zone de texte et cliquez sur le backspace , perdant complètement toutes les informations sous forme qu'ils viennent entrées. ne serait normalement pas un problème, mais pour nous, nous remplir beaucoup de texte sur les formes d'état longues. "
Le même un comportement indésirable peut également dire au sujet de la touche Entrée pour soumettre le formulaire, qui est généralement souhaitable (si jamais) pour les petites formes avec quelques champs, mais pas pour les formes avec beaucoup champs et sélectionnez des zones et des zones de saisie et des zones de texte, dans lequel la plupart du temps, vous ne voulez pas que le formulaire est soumis lorsque vous appuyez sur Entrée. C'est pourquoi je suggère le code ci-dessus, qui s'applique à tous les tags <FORM> la fonction proposée par webster, mais sans les vérifications pour ALT, ce qui ne me semble pas utile, et sans les vérifications de CTRL + N et CTRL + R et CTRL + F5, que nous ne voulons pas bloquer, car quand ils sont utilisés, ils ne sont pas accidentels.
Malheureusement, le code au-dessus de ne fonctionne pas dans Firefox lorsque vous avez DIVs et TABLEs dans votre FORM! Cela est dû au fait que l'événement keydown ne semble pas être propagé au formulaire conteneur et que le comportement par défaut (UNDESIRED!) Est appliqué aux touches Backspace et Enter. Je ne pouvais pas encore trouver une solution pour celui-ci ...
S'il vous plaît ne pas. Les utilisateurs aiment le backspace-to-go-back; revenir en arrière est l'une des fonctionnalités les plus vitales du navigateur et le casser est intolérable. S'ils ont fait une erreur, ils peuvent toujours aller de l'avant.(À moins que votre application Web ne casse lorsque vous revenez, auquel cas vous avez de plus gros problèmes à se soucier.) – bobince
Quelle est la raison d'empêcher les utilisateurs de revenir à la page précédente? Même si vous avez bloqué le retour arrière, l'utilisateur peut toujours utiliser le bouton Précédent du navigateur ou Alt + ←. –
Je _hate_ backspace-to-go-back. Alt-Left (ou Cmd-Left pour ceux d'entre vous qui ont des claviers maladroits) fonctionne de la même manière et ne frappe pas accidentellement les formulaires (empêchant ainsi la perte de tout le travail d'entrée de formulaire avant la frappe erroneus). – sblom