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 :

chrome et jquery submit


Sujet :

jQuery

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Par défaut chrome et jquery submit
    Bonsoir,

    J'ai button type submit qui declenche le onsubmit de mon formulaire
    dans le onsubmit il y a un appel à une fonction et return false
    cette fonction va faire un
    sous chrome il faut cliquez 2 fois sur le bouton pour que l'action de mon formulaire soit prise en compte

    pourquoi ?

    Merci de votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    un id étant unique sur la page , form est redondant ...

    A part ça sans voir plus de code ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Par défaut
    un peu de code

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <form id="pp" onsubmit="mafonction();return false;" target="_blank" method="GET" action="http://url_distante.com/pp/pp.php">
    <button type="submit">envoyer</button>

    mafonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var jqxhr = $.ajax({
                url : 'http://sitedistant.php',
                type : 'get',
                jsonpCallback: 'callback',
                contentType: "application/json",
                dataType : 'jsonp',
                data : {'format' : 'jsonp',
    			'email' : email}
            })
            .done(function(data,text,jqXHR) {
    			$('#pp').attr('onsubmit', '');
                $('#pp').submit();
    	    }


    edit :en fait sur IE ( et surement sur tous les autres) au 1er clic, il me bloque comme si c'etait une popup et au deuxieme clic il ouvre bien la page

    Voilà
    Merci de votre aide

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     onsubmit="mafonction();return false;"
    on a tout sauf le code de mafonction()
    ..
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Par défaut
    mafonction : code simplifié

    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
    mafonction(){
    var jqxhr = $.ajax({
                url : 'http://sitedistant.php',
                type : 'get',
                jsonpCallback: 'callback',
                contentType: "application/json",
                dataType : 'jsonp',
                data : {'format' : 'jsonp',
    			'email' : email}
            })
            .done(function(data,text,jqXHR) {
    			$('#pp').attr('onsubmit', '');
                $('#pp').submit();
    	    }
    }

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    oulà tu gère de façon très curieuse le onsubmit ...

    Dis nous plutot quelle ergonomie tu souhaites

    à priori tu veux soumettre le form en ajax
    => on utilise un preventDefault pour cela, mais explique en détail ce comportement souhaité
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    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 : 54
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $('#pp').attr('onsubmit', '');
    Cette ligne est inutile : un submit() effectué par un script ne déclenche pas l'événement onsubmit.
    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

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Par défaut
    le formulaire se trouve dans une lightbox dont le contenu se trouve dans un div
    ce formulaire est composé d'un champs email
    au submit la fonction ajax via jsonp va vérifier si l'email est valide
    au retour si valide je veux envoyer le formulaire vers une page d'inscription

    cette lightbox va etre distribuée sur des sites se trouvant sur d'autres servers d'où l'emploi du jsonp

    a l'origine ma fonction ne faisait pas de submit sur le formulaire
    elle renvoyait true si la validation de l'email etait ok
    et j'avais dans le onsubmit du formulaire :
    if(mafonction) [traitement de stats}; return false;
    mais cela ne fonctionnait que sur des pages sur le meme server
    car avant que le ajax termine et renvoie true, ma fonction etait completement executée et ça renvoyait toujours false
    et donc mon formulaire n'était jamais envoyé depuis un autre server

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Par défaut
    Cette ligne est inutile : un submit() effectué par un script ne déclenche pas l'événement onsubmit.
    elle est utile car le onsubmit fait appel à la fonction qui declenche le submit donc si je ne vide pas le onsubmit, ça va boucler

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 616
    Par défaut
    apparement, pour le 1er clic, c'est considéré comme une popup par les navigateurs et ça bloque l'ouverture
    et au second clic ça ouvre normalement
    avec
    et si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $("#pp").find("button[type=submit]").on('click', function(e) {
                    $('#pp').submit();
            });
    toujours besoin de deux clic pour ouvrir mais le premier n'est apparement pas considéré comme l'ouverture d'une popup, il ne passe rien

Discussions similaires

  1. Débutant Struts JQuery : submit
    Par rockley dans le forum Struts 1
    Réponses: 2
    Dernier message: 13/10/2011, 22h58
  2. Google Chrome et jquery
    Par xdeslandes dans le forum jQuery
    Réponses: 2
    Dernier message: 04/05/2011, 10h32
  3. réaction de chrome avec jQuery
    Par tefa24600 dans le forum jQuery
    Réponses: 0
    Dernier message: 25/03/2011, 17h10
  4. [HTML 4.0] Input type button se submit sous Google Chrome
    Par lcommander dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 02/04/2010, 13h15
  5. aligner un select et un input[submit] sur chrome/safari
    Par kohsaka dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 04/02/2010, 17h57

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