Problème Javascript

Profil bloqué -  
 Profil bloqué -
Bonjour,

j'ai repris un bout de code qui permet de tester si on rentre une date correctement
function twValide_date(nDate) {
  ok = "oui";
  var nChar;
  var aDate;
  var nJ;
  var nM;
  var nA;
  var jMax = 31;
  var nA1 = 1900;
  var nA2 = 2100;
  
  nAccepte = "0123456789/";
  if (nDate.value.length > 0) {
    if (nDate.value.length < 8 || nDate.value.length > 10) ok = "non";
    for (var i=0; i<nDate.value.length; i++) {
      nChar = "" + nDate.value.substring(i, i+1);
      if (nAccepte.indexOf(nChar) == "-1") ok = "non";
    }
    if (ok == "oui") 
	{
      aDate = nDate.value.split("/");
      nJ = aDate[0]; nM = aDate[1]; nA = aDate[2];
	  if ((nJ < 1 || nJ > jMax) || (nM < 1 || nM > 12) || (nA < nA1 || nA > nA2))
	  	{
		ok = "non";
		}
      else 
	  	{
        if (nM == 2) 
		{ 
          if (nA == 2000 || nA == 2004 || nA == 2008 || nA == 2012 || nA == 2016 || nA == 2020)
		   { jMax = 29 }
		    else 
			{ jMax = 28 }
        }
        if ((nM == 1 || nM == 3 || nM == 5 || nM == 7 || nM == 8 || nM == 10 || nM == 12)) jMax = 31
        if ((nM == 4 || nM == 6 || nM == 9 || nM == 11)) jMax = 30
     
        if (nJ < 1 || nJ > jMax) ok = "non";
      }
    }
  if (ok == "non") {
      nDate.focus();
      nDate.select();
	  alert ("\nDate invalide!. Veuillez entrer une date valide: jj/mm/aaaa")
    }
  }
}


Si jamais on rentre du texte, alors j'ai une popup toute blanche qui s'ouvre avec rien dedans...je clique sur fermer et la j'obtiens le message: Date invalide!. Veuillez entrer une date valide: jj/mm/aaaa

Pourquoi est-ce que j'ai une popup vide avant ?

Merci
Configuration: Windows XP
Firefox 3.5.7

2 réponses

  1. Zestyr Messages postés 503 Statut Membre 52
     
    Salut, je suis présser donc je ne saurais pas te répondre mais pour vérifier des chaine de caractères en javascript on use des regex : c'est plus simple
    function dateValide(sDate)
    {
        return /^ \d{1,2}\/{1}\d{1,2}\/\d{2,4} $/.test(sDate);
    }
    


    tu peux apprendre les regexs ici

    Aussi en js ça existe les booleen alors au lieu de mettre ok = "non" , marque ok = false !

    ++
    0
  2. Profil bloqué
     
    Bonjour,

    Merci pour ton aide. En faite j'ai simplement enlevé dans mon code:
      if (ok == "non") {
         // nDate.focus();
         // nDate.select();
    	  alert ("\nDate invalide!. Veuillez entrer une date valide: jj/mm/aaaa")
        }


    Et la sa marche.

    merci pour l'info
    0