IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

event.preventDefault(); ne fonctionne pas sous mozilla !


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Par défaut event.preventDefault(); ne fonctionne pas sous mozilla !
    Bonjour,

    Je m'essaie à jQuery avec plus ou moins de réussite...

    J'ai un script que j'apelle sur l’événement onclick() d'un form qui, lui, se trouve dans une div modal.
    Je vérifie simplement si les champs sont complétés et sinon j'affiche une div erreur et j’arrête le traitement.
    Cela fonctionne parfaitement dans chrome et IE : la div modale reste affichée, la div erreur visible. Mais sous mozilla, aucun effet. Une fois la div erreur affichée la div modale qui contient le form se ferme et redirection auto vers la page sur laquelle était le bouton d'appel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var pass1 = $("#pass").val();
    if( login1 =='' || pass1 =='')
    {
    	$("#erreur").show();
    	event.preventDefault();
    }
    Un conseil me serait nécessaire...

    Merci de votre aide,

    stephane

  2. #2
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 100
    Par défaut
    Bonsoir,

    tu ne nous montres pas la façon dont tu attaches ta fonction au click. La variable event n'est disponible que si tu l'as écrite comme paramètre de la fonction qui gère ton click.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ... .click(function(event) {
       ...
       event.preventDefault();
    });
    As-tu vérifié s'il y avait un message d'erreur dans la console de ton navigateur (F12) ?

    Autre chose, je pense que tu devrais agir sur l'évènement submit plutôt que click car, si j'ai bien compris ton objectif, tu veux interrompre la soumission du formulaire.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Par défaut
    voila tout mon code

    J ai suivi tes conseils, je suis passé sur l evenement click.
    En ce qui conserne l affichage des erreurs...je connaissais pas c est CTRL +K sous mozilla
    j ai effectivement un message d aerreur :
    ReferenceError: event is not defined login.js:11 ça correspond à la ligne du 1er event.preventDefault();



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    $(document).ready(function()
    { 
    	$("#envoyer").click(function()
    	{
     
    		var login1 = $("#login").val();
    		var pass1 = $("#pass").val();
    		if( login1 =='' || pass1 =='')
    		{
    			$("#erreur").show();
    			event.preventDefault();
    		}
    		else
    		{ 
     
    			var url="php/login.php";
    			$.post( url, { login: login1, pass: pass1 } )
    		  .done(function( data ) {
     
    			if(data=='ok') 
    			{
    				var url ="user/index.php?";
    				window.location.replace(url);
    				event.preventDefault();			
    			}
    			else
    			{
    				$("#erreur").show();		
    			}
    			event.preventDefault();
    		  });			
    		}
    	event.preventDefault();	
    	});
    });
    merci de tes conseils

    Une petite precision
    J ai la meme erreur à la ligne 31 (enfinj y ai ecore touché donc ça correspond peut etre plus mais...), c est à dire le dernier event.preventDefault(); lorsuqe j ai ok en retour et toujours seulement sur mozilla. L es autres me redirigent bien mais lui il boucle sur la page d appel

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Par défaut
    J ai la solution grace à cette page : http://js.4design.tl/evenement-jquer...entdefault-925

    Je devais utiliser return false à la place et maintenant je sais pourquoi

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Watilin t'avait donné la réponse dans son message.
    Quant au return false, l'article que tu cites explique précisément que ce n'est pas la bonne solution !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Par défaut
    Bon j ai tout lu de travers alors....
    l heure tardive peut etre

    mais dans l article j ai lu :
    Ce que l’on sait moins, c’est que `return false` provoque trois effets : `preventDefault()`, `stopPropagation()` et `stopImmediatePropagation()` !
    Je me suis basé là dessus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. event.preventDefault(); ne fonctionne pas !
    Par Shuret dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/12/2010, 09h29
  2. [Prototype] Script d'autocomplétion ne fonctionne pas sous Mozilla
    Par vixell dans le forum Bibliothèques & Frameworks
    Réponses: 6
    Dernier message: 11/03/2008, 09h20
  3. event.observe ne fonctionne pas sous IE
    Par mikees dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/06/2007, 18h48
  4. slideshow ne fonctionne pas sous mozilla
    Par brotelle dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 11/05/2006, 12h18
  5. Réponses: 18
    Dernier message: 19/08/2004, 15h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo