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 :

HTML5 doit tout valider AVANT que je lance mon ajax sur blur()


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut HTML5 doit tout valider AVANT que je lance mon ajax sur blur()
    Bonjour,

    Voici mon problème : j'aimerais que mon ajax.js ne se lance que quand HTML a terminé son travail de validation sur le formulaire COMPLET.

    voici ma page ajax.js
    Ici, c'est un bac à sable, mais à terme, j'ai plusieurs pages de longs formulaires assez rasoirs, alors je veux ne pas mettre de submit, ni bouton, ni input.
    Je pose donc partout des événements "blur"...
    Le problème est le suivant :

    - champ login required
    - champ age (facultatif)
    - champ genre (required)
    - champ artiste_prefere (required)
    - champ legume_prefere (facultatif)


    Le formulaire se présentant dans cet ordre.
    Et mettons que user le remplit dans l'ordre, comme la plupart du temps, je souhaiterais qu'il se passe ceci à l'événement onblur()

    login (j'enregistre pas)
    age (j'enregistre pas)
    genre (j'enregistre pas)
    artiste_prefere (j'enregistre tout car tous les champs required sont là)
    legume_prefere (j'enregistre tout car tous les champs required sont là)

    Vous voyez le truc ?

    J'ai fini par régler le problème du côté de ma page "form_traitement.php".
    Alors ok, je fais toujours le contrôle de saisie côté serveur, OK.
    Mais là, côté client, je perds les bénéfs du contrôle de saisie HTML5. Sans compter qu'ici, je ne parle que de "required", mais il y en a bien d'autres, des contrôles HTML5.
    Bref, suis pas trop contente.

    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
    /*si on active listener alors event : variable post envoyee vers traitement.php*/
    $(document).ready(function(){
      $('.save').blur(function(e){
        e.preventDefault();
        $.post(
          'form_traitement.php',
          {
            login : $('#login').val(),
            age : $('#age').val(),
            genre : $('#genre').val(),
            artiste_prefere : $('#artiste_prefere').val(),
            legume_prefere : $('# legume_prefere').val(),
          },
          function(data){
            if(data == 'ok'){
              $('#feedback').html('<p class="feedback_ok">La modification a bien été enregistrée !</p>');
            }
            else if(data == 'ko'){
              $('#feedback').html('<p class="feedback_ko">La modification n\'a pas été enregistrée !</p>');
            }
          },
          'text' //il faut afficher le text
        );
      });
    });
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 521
    Par défaut
    Salut,

    Je ne sais pas si j'ai vraiment bien compris le problème, mais tu peux quand même vérifier tes contrôles avec $.each par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $('.save').blur(function(e){
        e.preventDefault();
        let valide=true;
        $("#login,#age,#genre,#artiste_prefere,#legume_prefere").each(function(){
           if($(this).attr("required") && $(this).val().trim()==""){
               valide=false;
          }
       });
       if(valide){
           //lance ton ajax ici ...
       }
    });

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/10/2018, 09h07
  2. Pause café avant que l'environnement graphique soit lancé
    Par ctac_ dans le forum Applications et environnements graphiques
    Réponses: 7
    Dernier message: 07/09/2018, 20h58
  3. Réponses: 29
    Dernier message: 28/12/2014, 18h58
  4. Réponses: 9
    Dernier message: 06/01/2011, 17h53
  5. Réponses: 3
    Dernier message: 23/05/2010, 12h39

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