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

JavaScript Discussion :

Contrôle de plusieurs champ sur un ajout de ligne


Sujet :

JavaScript

  1. #1
    Membre du Club Avatar de nawak.seb
    Profil pro
    Inscrit en
    Août 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 106
    Points : 55
    Points
    55
    Par défaut Contrôle de plusieurs champ sur un ajout de ligne
    Bonjour,

    Je vais essayer d’être claire !
    Dans un formulaire, j’ai une div où j’ai, 3 listes déroulantes, 1 champ texte avec un bouton submit.
    Suivi d’un lien href pour ajouter une même ligne.
    Jusqu’ici, tous va bien, seulement, je voudrai contrôler mes sélections et champs.
    Cad : soit dans une ligne, on choisi de ne rien remplir ou l'inverse , même chose si on ajoute des lignes en plus.

    Voici mon code, c'est plus parlant :

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
     
    <script>
    var nlignes = 1;
    function verif ()
    {
    //nlignes++;
     
    if (
    ((document.form1.elements['selectnum['+nlignes+']'].value==-1) && (document.form1.elements['selectabc['+nlignes+']'].value==-1) && (document.form1.elements['selectcarac['+nlignes+']'].value==-1) && (document.form1.elements['champ['+nlignes+']'].value!=''))
    || 
    ((document.form1.elements['selectnum['+nlignes+']'].value==-1) && (document.form1.elements['selectabc['+nlignes+']'].value==-1) && (document.form1.elements['selectcarac['+nlignes+']'].value!=-1) && (document.form1.elements['champ['+nlignes+']'].value!=''))
    ||
    ((document.form1.elements['selectnum['+nlignes+']'].value==-1) && (document.form1.elements['selectabc['+nlignes+']'].value==-1) && (document.form1.elements['selectcarac['+nlignes+']'].value!=-1) && (document.form1.elements['champ['+nlignes+']'].value==''))
    ||
     
    ((document.form1.elements['selectnum['+nlignes+']'].value==-1) && (document.form1.elements['selectabc['+nlignes+']'].value!=-1) && (document.form1.elements['selectcarac['+nlignes+']'].value==-1) && (document.form1.elements['champ['+nlignes+']'].value!=''))
    ||
    ((document.form1.elements['selectnum['+nlignes+']'].value==-1) && (document.form1.elements['selectabc['+nlignes+']'].value!=-1) && (document.form1.elements['selectcarac['+nlignes+']'].value==-1) && (document.form1.elements['champ['+nlignes+']'].value==''))
    ||
    ((document.form1.elements['selectnum['+nlignes+']'].value==-1) && (document.form1.elements['selectabc['+nlignes+']'].value!=-1) && (document.form1.elements['selectcarac['+nlignes+']'].value!=-1) && (document.form1.elements['champ['+nlignes+']'].value!=''))
    ||
    ((document.form1.elements['selectnum['+nlignes+']'].value==-1) && (document.form1.elements['selectabc['+nlignes+']'].value!=-1) && (document.form1.elements['selectcarac['+nlignes+']'].value!=-1) && (document.form1.elements['champ['+nlignes+']'].value==''))
    ||
     
    ((document.form1.elements['selectnum['+nlignes+']'].value!=-1) && (document.form1.elements['selectabc['+nlignes+']'].value==-1) && (document.form1.elements['selectcarac['+nlignes+']'].value!=-1) && (document.form1.elements['champ['+nlignes+']'].value==''))
    ||
    ((document.form1.elements['selectnum['+nlignes+']'].value!=-1) && (document.form1.elements['selectabc['+nlignes+']'].value==-1) && (document.form1.elements['selectcarac['+nlignes+']'].value!=-1) && (document.form1.elements['champ['+nlignes+']'].value!=''))
    ||
    ((document.form1.elements['selectnum['+nlignes+']'].value!=-1) && (document.form1.elements['selectabc['+nlignes+']'].value==-1) && (document.form1.elements['selectcarac['+nlignes+']'].value==-1) && (document.form1.elements['champ['+nlignes+']'].value!=''))
    ||
    ((document.form1.elements['selectnum['+nlignes+']'].value!=-1) && (document.form1.elements['selectabc['+nlignes+']'].value==-1) && (document.form1.elements['selectcarac['+nlignes+']'].value==-1) && (document.form1.elements['champ['+nlignes+']'].value==''))
    ||
     
    ((document.form1.elements['selectnum['+nlignes+']'].value!=-1) && (document.form1.elements['selectabc['+nlignes+']'].value!=-1) && (document.form1.elements['selectcarac['+nlignes+']'].value!=-1) && (document.form1.elements['champ['+nlignes+']'].value==''))
    ||
    ((document.form1.elements['selectnum['+nlignes+']'].value!=-1) && (document.form1.elements['selectabc['+nlignes+']'].value!=-1) && (document.form1.elements['selectcarac['+nlignes+']'].value==-1) && (document.form1.elements['champ['+nlignes+']'].value==''))
    ||
    ((document.form1.elements['selectnum['+nlignes+']'].value!=-1) && (document.form1.elements['selectabc['+nlignes+']'].value!=-1) && (document.form1.elements['selectcarac['+nlignes+']'].value==-1) && (document.form1.elements['champ['+nlignes+']'].value!=''))
    ||
    ((document.form1.elements['selectnum['+nlignes+']'].value!=-1) && (document.form1.elements['selectabc['+nlignes+']'].value!=-1) && (document.form1.elements['selectcarac['+nlignes+']'].value!=-1) && (document.form1.elements['champ['+nlignes+']'].value!=''))
    )
     
    		{
    		alert ("les 4 ou rien ");
     
    		return false ;
    		}
     
    }
     
    var nlignes = 1;
    function Ajouter()
    {
    		nlignes++;
    		saisies.insertAdjacentHTML('BeforeEnd','<BR><select name="selectnum['+nlignes+']" id="selectnum['+nlignes+']"><option value="-1">selectionne</option><option>1</option><option>2</option><option>3</option><option>4</option></select>&nbsp;<select name="selectabc['+nlignes+']" id="selectabc['+nlignes+']"><option value="-1">selectionne</option><option>a</option><option>b</option><option>c</option><option>d</option></select>&nbsp; <select name="selectcarac['+nlignes+']" id="selectcarac['+nlignes+']"><option value="-1">selectionne</option><option>f</option><option>g</option><option>h</option><option>i</option></select>&nbsp; <input type="text" name="champ['+nlignes+']" id="champ['+nlignes+']">');
     
    };
    </script>
     
    <form name="form1" method="post" action="page_2.php">
      <label>
     <a href="javascript:Ajouter()" >+</a>
    <Div ID=saisies>
      <select name="selectnum[1]" id="selectnum[1]">
            <option value="-1">selectionne</option>
            <option>1</option>
            <option>2</option>
            <option>3</option>
            <option>4</option>
      </select>
      </label>
      <select name="selectabc[1]" id="selectabc[1]">
    	    <option value="-1">selectionne</option>
            <option>a</option>
            <option>b</option>
            <option>c</option>
            <option>d</option>
      </select>
     
     
      <select name="selectcarac[1]" id="selectcarac[1]">
        <option value="-1">selectionne</option>
        <option>f</option>
        <option>g</option>
        <option>h</option>
        <option>i</option>
      </select>
      <label>
      <input type="text" name="champ[1]" id="champ[1]">
      </label>
      <input type="submit" value="ok"   onClick="return verif ()">
      </div>
    </form>
    Comment je peu contrôler chaque champs pour chaque ligne ?

  2. #2
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    très honnêtement en l'état actuel ton code me donne mal au crâne
    un if comme ça c'est illisible, il faut utiliser des variables intermédiaires. en plus de gagner en clarté, ton code sera plus maintenable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var num = document.form1.elements['selectnum['+nlignes+']'].value;
    var tabc =document.form1.elements['selectabc['+nlignes+']'].value;
    ...
    if (num==-1 && tabc==-1 ...)

  3. #3
    Membre du Club Avatar de nawak.seb
    Profil pro
    Inscrit en
    Août 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 106
    Points : 55
    Points
    55
    Par défaut
    Merci pour l’info, j’ai modifié mon code :

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    <script>
    var nlignes = 1;
    function verif ()
    {
    //nlignes++;
    var num =   document.form1.elements['selectnum['+nlignes+']'].value;
    var abc =   document.form1.elements['selectabc['+nlignes+']'].value;
    var carac = document.form1.elements['selectcarac['+nlignes+']'].value;
    var champ = document.form1.elements['champ['+nlignes+']'].value;
     
    if (
    (num==-1 && abc==-1 && carac==-1 && champ!='')||(num==-1 && abc==-1 && carac!=-1 && champ!='')||(num==-1 && abc==-1 && carac!=-1 && champ=='')
    ||
    (num==-1 && abc!=-1 && carac==-1 && champ!='')||(num==-1 && abc!=-1 && carac==-1 && champ=='')||(num==-1 && abc!=-1 && carac!=-1 && champ!='')||(num==-1 && abc!=-1 && carac!=-1 && champ=='')
    ||
    (num!=-1 && abc==-1 && carac!=-1 && champ=='')||(num!=-1 && abc==-1 && carac!=-1 && champ!='')||(num!=-1 && abc==-1 && carac==-1 && champ!='')||(num!=-1 && abc==-1 && carac==-1 && champ=='')
    ||
    (num!=-1 && abc!=-1 && carac!=-1 && champ=='')||(num!=-1 && abc!=-1 && carac==-1 && champ=='')||(num!=-1 && abc!=-1 && carac==-1 && champ!='')
    )
    	{
    		alert ("les 4 ou rien ,sur la ligne "+nlignes+"");
    		return false ;
    	}		
    }
     
    //var nlignes = 1;
    function Ajouter()
    {
     
    		nlignes++;
    		saisies.insertAdjacentHTML('BeforeEnd','<BR><select name="selectnum['+nlignes+']" id="selectnum['+nlignes+']"><option value="-1">selectionne</option><option>1</option><option>2</option><option>3</option><option>4</option></select>&nbsp;<select name="selectabc['+nlignes+']" id="selectabc['+nlignes+']"><option value="-1">selectionne</option><option>a</option><option>b</option><option>c</option><option>d</option></select>&nbsp; <select name="selectcarac['+nlignes+']" id="selectcarac['+nlignes+']"><option value="-1">selectionne</option><option>f</option><option>g</option><option>h</option><option>i</option></select>&nbsp;<input type="text" name="champ['+nlignes+']" id="champ['+nlignes+']">');
     
    };
    </script>
     
    <form name="form1" method="post" action="page_2.php">
      <label>
     <a href="javascript:Ajouter()" >+</a>
    <Div ID=saisies>
      <select name="selectnum[1]" id="selectnum[1]">
            <option value="-1">selectionne</option>
            <option>1</option>
            <option>2</option>
            <option>3</option>
            <option>4</option>
      </select>
      </label>
      <select name="selectabc[1]" id="selectabc[1]">
    	    <option value="-1">selectionne</option>
            <option>a</option>
            <option>b</option>
            <option>c</option>
            <option>d</option>
      </select>
     
     
      <select name="selectcarac[1]" id="selectcarac[1]">
        <option value="-1">selectionne</option>
        <option>f</option>
        <option>g</option>
        <option>h</option>
        <option>i</option>
      </select>
      <label>
      <input type="text" name="champ[1]" id="champ[1]" >
      </label>
      <input type="submit" value="ok"   onClick="return verif ()">
      </div>
    </form>

Discussions similaires

  1. contrôle des doublons sur plusieurs champs
    Par christy1 dans le forum Modélisation
    Réponses: 3
    Dernier message: 09/12/2011, 14h13
  2. Réponses: 2
    Dernier message: 17/06/2008, 00h04
  3. contrôle sur plusieurs champs Input
    Par paolo2002 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/03/2008, 12h33
  4. Comparer plusieurs champs sur une ligne
    Par BlacKou dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 03/07/2007, 09h51
  5. [CR] Groupement dynamique sur plusieurs champs paramètrés
    Par CDRIK dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 07/06/2004, 17h55

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