Boucle teste

Résolu
Chers confrères,
Etant null en JS, j'aimerais un peu d'aide pour réussir à exécuter cette fonction JS.
var tab = ["fname","lname"];
function verifchamps(champ)
{
	for(var i = 0 ; i < tab.length ; i++)
		if(document.getElementById(tab[i]) == ''){
			surligne(champ, true);
			document.getElementById('check_out').style.display = "none";
			return false;
		}else{
		  	surligne(champ, false);
		  	document.getElementById('check_out').style.display = "block";
			return true;
		}
}


Merci d'avance



--
Bien PHPment et MySQLment
Delaville

2 réponses

  1. j'vais corrigé le problème en mettant .value

    if(document.getElementById(tab[i]).value == '')
    


    Mais finalement je n'ai pas pris cette méthode car ça ne faisait pas ce que je voulais. J'ai crée une fonction pour chaque champs de mon form. C'est plus long mais ça fonctionne comme je voulais
    1. Modérateur
      Bonjour,

      Quel est le souci exactement ? Car ne lisant vite fait le code.. il me semble techniquement correct....
      (même si on peut l'améliorer (le raccourcir) en écriture ternaire..)
      Par exemple :
      function verifchamps(champ) {
        var surL = document.getElementById(tab[i]) == '' ? true : false;
        surligne(champ, surL );
        document.getElementById('check_out').style.display =  document.getElementById(tab[i]) == '' ? "none" : "block";
        return : document.getElementById(tab[i]) == '' ? false : true;
      }
      


      homis ça.. donc.. quel est ton souci ?
      Que contient ta focntion "surligne" ?
      Y a t'il des messages (et si oui lesquels) dans la console de ton navigateur ?
      1. Contributeur
        var surL = document.getElementById(tab[i]) == '' ? true : false;

        C'est redondant, le test d'égalité retournant déjà un booléen.
        De même pour le test ternaire après, qui peut se faire en fonction de
        surL
        , et le
        return
        qui est simplement
        !surL
        .