Comment arrêter la boîte d'alerte, appuyez sur la boucle enter?

Lorsque l'utilisateur appuie sur le document, je montre une boîte d' alert() avec l' alert() .

Le comportement par défaut que le navigateur (Chrome 27 sur Mac OS X 10.8.4) a est lorsque vous appuyez sur enter lorsqu'il est concentré sur la zone d'alerte, il va le fermer. Cela déclenchera l'entrée sur le document, en montrant la boîte d'alerte à nouveau. Vous pouvez voir comment il peut boucler.

Notez que lorsque j'utilise ma souris pour cliquer sur OK dans la zone d'alerte, la boucle ne se produit pas.

Comment puis-je empêcher cette boucle?

Un exemple (la manière réelle d'utiliser cela est beaucoup plus compliquée):

 $(document).keyup(function(e) { e.preventDefault(); var keyCode = e.keyCode || e.which; if (keyCode == 13) { alert('Hello world!'); } return false; }); 

Vous pouvez déléguer l'événement de stopPropagation() et utiliser stopPropagation() pour éviter que l'événement ne bouge vers le document lorsqu'il est déclenché sur la boîte de dialogue d'alerte, de la manière suivante: http://jsfiddle.net/KNyzc/

 $(document).on( "keydown", function(e) { e.stopPropagation(); var keyCode = e.keyCode || e.which; if (keyCode == 13) { alert('Hello world!'); } }); 

(En fait, vous n'avez pas besoin d'utiliser stopPropagation du tout. Utilisez simplement l'événement de dépannage).