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 :

Contrôle de formulaire dynamique


Sujet :

jQuery

Vue hybride

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 295
    Par défaut Contrôle de formulaire dynamique
    Bonjour,

    J'ai un formulaire généré dynamiquement. Les noms des champs reviennent à
    input id="cout[1]" ... input id="cout[2] etc...
    J'aimerais toutefois vérifier si au moins l'un des champs n'est pas vide avant l'envoie du formulaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if($('input[name^=cout]').val()!=""){
    ...
    }
    else{
    ...
    };
    Je n'obtiens qu'une seule valeur avec ce script. J'ai donc pensé à l'inclure dans une boucle. Mais si condition est exacte, je ne vais pas à chaque itération envoyer le formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $.post("repart_et_tva/treatmentCompta.php", $("#formCompta").serialize(), function(data){
    ...
    if(data == ""){
    $("#content").fadeOut('normal', function(){
    ...
    }
    Comment puis-je faire alors ?
    merci,

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $("input[name^='cout']").each(function(i, item){
    	if ($(item).val() == ""){
    		// traitement de l'erreur
    	}
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 295
    Par défaut re:
    Bonjour,

    Merci pour le code. Mais après l'avoir testé, il ne répond pas précisément à ma demande. Je l'ai implémente d'une variable témoin, et voici ce que j'ai écris:
    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
    $(function(){
        $("#formCompta").submit(function(){
            var temoin = true
            $("input[name^='cout']").each(function(i, champs){
                if($(champs).val() == ""){
                    temoin = true;
                    return false; //Arrêt de la boucle
                }
                else{
                    temoin = false;
                }
            });
            if(temoin == true){
                $("#content").append('not Ok!');
            }
            else{
                $("#content").append('it\'s Ok!');
            }
            return false;
        });
    });
    3 cas possibles:
    Si aucun des champs n'est rempli, j'ai bien 'not ok!' qui apparaît
    Si tous les champs sont remplis, 'its ok!'
    Mais si l'un des champs n'est pas rempli, c'est 'not ok!' qui est lu. Or, ce n'est pas bon, puisque c'est un champs minimum qui doit être renseigné pour que cela puisse être valable. Et donc le formulaire envoyé.
    Il y a quelque chose qui m'échappe encore...
    merci,

  4. #4
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Par défaut
    Tu veux dire que tu veux que ta condition soit :

    Parmis tous mes champs,
    si un champ est remplis alors OK
    sinon NOT OK
    Prend ton algo à l'envers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     $("input[name^='cout']").each(function(i, champs){
                if($(champs).val() != ""){
                   return true;
                else return false;
    };

Discussions similaires

  1. [AC-2003] Insérer des contrôles dans un formulaire dynamiquement
    Par autkioer dans le forum VBA Access
    Réponses: 3
    Dernier message: 29/12/2010, 16h32
  2. les contrôles dans un formulaire dynamique
    Par rinuom99 dans le forum Langage
    Réponses: 2
    Dernier message: 01/04/2008, 17h52
  3. formulaire dynamique
    Par shirya dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/10/2004, 16h13
  4. [JSP] [STRUTS] Contrôle de formulaire
    Par babylone7 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 13/07/2004, 17h51
  5. [struts]Formulaire dynamique
    Par GreenJay dans le forum Struts 1
    Réponses: 8
    Dernier message: 28/05/2004, 16h35

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