Partage
  • Partager sur Facebook
  • Partager sur Twitter

Vérification d'un nombre de champs indéfinis...

Sujet résolu
    15 novembre 2008 à 18:41:00

    Bonjour à tous,
    Je vous explique mon problème :

    - J'ai un formulaire avec un champ
    <input name="selection" type="checkbox">
    

    Sur celui-ci je fait une vérification JS :
    function verif()
    {
    if(document.formulaire.selection.checked != true)
    	{ 
            alert ('Vous n\'avez saisie aucune(s) champs');
            return false; 
        	}
    else return true;
    }
    

    Jusque la tout va bien, tout fonctionne.

    - Maintenant j'ai un tableau avec plusieurs colonnes.
    J'ai rajouté une colonne de manière a avoir une checkbox sur chaque ligne.
    J'ai incrémenté une variable pour qu'à chaque fois mes champs input ai des nom différents :
    <input name="selection1" type="checkbox">
    <input name="selection2" type="checkbox">
    ...
    


    donc dans se cas la au niveau de ma fonction JS il suffit de rajouter :
    function verif()
    {
    if(document.formulaire.selection1.checked != true) || (document.formulaire.selection2.checked != true)
    	{ 
            alert ('Vous n\'avez saisie aucune(s) champs');
            return false; 
        	}
    else return true;
    }
    


    Le problème c'est que je n'ai pas un nombre défini de ligne dans mon tableau !
    Il peut y en avoir 1 ou 15...
    Donc comment adapter ma fonction JS en conséquence ?

    Sachant qu'il ne peut y avoir plus de 15 lignes, je pourrais faire une vérif pour les 15, mais je trouve pas ca très propre !

    Donc si quelqu'un connait un autre moyen ?
    Merci

    EDIT: je viens de me rendre compte que ma "solution provisoire" ne fonctionne même pas car la fonction attend que tout les champs lui retourne "true". Pourtant les "||" en JS ne signifie t'elle pas "OU" ?
    EDIT2: J'ai rien dit c'est bien "OU" mais dans mon cas c'est "&&" qu'il me faut...
    Donc ma solution intermédiaire fonctionne, mais revenons en au problème principal...
    • Partager sur Facebook
    • Partager sur Twitter
      15 novembre 2008 à 19:09:44

      C'est très simple :) .
      function verif()
      {
      	var form = document.formulaire; //On stock ton formulaire dans une variable pour alléger le code
      	var nbEle = form.elements.length; //On récupère le nombre d'éléments.
      	for(i = 0; i < nbEle; i++)
      	{
      		if(form.elements[i].getAttribute('type') == 'checkbox') //getAttribute permet de récupérer la valeur d'un attribut donné.
      		{
      			if (form.elements[i].checked)
      			{
      				
      			}
      			else
      			{
      		
      			}
      		}
      	}
      }
      



      http://toutjavascript.com/reference/re [...] orms&parent=7
      http://toutjavascript.com/reference/re [...] ts&parent=157
      • Partager sur Facebook
      • Partager sur Twitter
        15 novembre 2008 à 19:15:46

        +1 smilz

        en lisant le probleme de MeDeVa je penssais de suite a fair une boucle
        • Partager sur Facebook
        • Partager sur Twitter
          15 novembre 2008 à 19:20:39

          Merci bien,
          Je n'utilise que très peut le JS, je ne savez pas qu'on pouvait faire des boucles ^^
          Merci a vous, et merci pour les liens aussi.

          EDIT: Voici mon code final, car dans celui que tu m'a donné, il fallait obligatoirement que la première ligne soit coché ;)
          Encore merci de votre aide.

          function verif_confirm_reserver()
          {
          	nbChecked = 0
          	var form = document.confirm_reserver; //On stock le formulaire dans une variable
          	var nbEle = form.elements.length; //On récupère le nombre d'éléments
          	for(i = 0; i < nbEle; i++) // On passe tous les éléments un par un
          	{
          		if(form.elements[i].getAttribute('type') == 'checkbox') //getAttribute permet de récupérer la valeur d'un attribut donné : Si un élément est une checkbox ...
          		{
          			if (form.elements[i].checked == true) // et si elle n'est pas coché ...
          			{
          				nbChecked++ // alors on incrémente nbChecked
          			}
          		}
          	}
          	if (nbChecked == 0) // si nbChecked = 0 c'est qu'aucune case n'est cochée !
          	{
          		alert ('Vous n\'avez saisie aucune(s) chambre(s)');
                  return false; 
          	}
          	else return true
          }
          
          • Partager sur Facebook
          • Partager sur Twitter

          Vérification d'un nombre de champs indéfinis...

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown