jQuery événement.preventDefault() ne fonctionne pas sous Firefox (JSFiddle inclus)
C'est une sorte de semblable en double pour certains autres ici, mais je pense que je suis en utilisant event.preventDefault()
correctement dans ce cas.
Voici un JSFiddle vous pouvez voir le code avec: http://jsfiddle.net/SeEw2/2/
Fondamentalement, cliquez sur le bouton "Soumettre".
Dans google Chrome: Rien ne se passe - réponse correcte.
Dans Firefox: Page s'actualise, oh non!
Alors pourquoi est le recharger la page dans Firefox et pas de google Chrome? J'ai été Firebugging et pas d'erreurs venir en soit...
- La raison pour laquelle cela fonctionne sur Chrome, c'est que Chrome jette un os à des sites qui sont IE-dépendante, par le remplissage de
window.event
avec l'événement en cours avant le déclenchement de gestionnaires. (Et une référence de votreevent
-- parce que vous avez oublié de l'inclure dans votre signature du gestionnaire d'événements, comme ClemDesm a été le premier à souligner - signifie que vous êtes en retard surwindow.event
.) Firefox ne jette aucun de ces os-à-dire le code spécifique. - Très instructif, merci T. J. - je ne savais pas que.
- Merci de poster le code en question, pas dans jsFiddle.
Vous devez vous connecter pour publier un commentaire.
La variable
event
dans votre code n'est pas initialisé.http://jsfiddle.net/SeEw2/4/
extrait :
Ah j'ai eu un problème similaire dans le passé. Plutôt que de l'événement.preventDefault() essayer de passer l'événement:
Je sais qu'il dit IE, mais je n'ai jamais eu un problème avec elle depuis =]
Parce que votre ne passe pas de l'objet d'événement comme
function(event)
, mais ma question est pourquoi même aller à travers tout cela, quand vous pouvez faire latype="button"
et onclick transmettre les valeurs? Pour l'essentiel, que ce que vous faites avec l'ensemble de ce processus.type="button"
. Je ne suis pas en utilisantonclick
cependant, puisque dans la plus grande étendue de choses, il est plus pratique de faire comme ça.type="button"
reconnaître le entrée clavier tactile soumettre? Ne peut pas vraiment tester sur jsfiddle, ne peut pas tester une autre façon @ mon travail, et je suis curieux 🙂preventDefault()
se produit. C'est ce que tu veux dire? 🙂#ajaxsearch
à la<form>
balise, puis a couru$('#ajaxsearch').submit([...]
- qui fonctionne avec deux d'entre eux..submit()
gestionnaire de le faire. Il semble comme une meilleure solution dans ce cas (pas deaction
dans leform
(BTW, pourquoi utilisez-vous unform
alors 😉 ?) De toute façon avec JS désactivé, aucun secours ici.Au lieu de regarder pour un événement click sur le bouton "soumettre", pourquoi ne pas utiliser le $(formulaire).soumettre gestionnaire?
Aussi longtemps que vous avez "return false" à la fin de la gestionnaire, la page ne recharge pas.
Je l'ai résolu de cette façon, en raison de mon code est un peu différente de ce qui peut être utile pour d'autres personnes. Mon code ressemble à ceci.
Ma fonction js ressemblait
J'ai dû passer le paramètre de l'événement dans l'appel de fonction et de le recevoir dans la fonction.
code js:
J'espère que cela aide.