Fonction javascript

Résolu
Bonjour,
je veux contrôler un champ date ( jour ) dans un formulaire web j'ai essayer avec cette fonction mais il y a un pb:

function f4()
{
if(is_numeric("'"+document.form.jj.value+"'")==false)
{
alert(' Erreur ');
if ((document.form.jj.value) < 1 || (document.form.jj.value) > 31 )
{
alert(' Erreur ');
}

}
}

merci
Configuration: Windows Vista
Firefox 3.0.4

3 réponses

  1. Bonjour,

    Déjà, is_numeric("'"+document.form.jj.value+"'") risque d'être toujours faux,
    Puisque tu rajoutes des apostrophes. Il est possible que javascript soit gentil et te le fasse quand même, mais bon...

    Ensuite tu testes le jour pour vérifier qu'il est entre 1 et 31 uniquement quand il y a une erreur, car tu as mis ton test dans le bloc d'erreur.

    essayes :
    function f4()
    {
    if(is_numeric(document.form.jj.value)==false)
    {
    alert(' Erreur ');
    }

    if ((document.form.jj.value) < 1 || (document.form.jj.value) > 31 )
    {
    alert(' Erreur ');
    }
    }
    1. ou en un seul test:

      
      function f4()
      {
      var champ_jour = document.form.jj.value;
      if(!is_numeric(champ_jour) || champ_jour< 1 || champ_jour > 31)
      {
      alert(' Erreur ');
      }
      
      
      }
      
      1. Sauf si tu veux faire apparaitre deux messages d'erreurs différents,
        mais d'accord, c'est pas le sujet ;-)
    2. salut;

      j'ai testé les fonctions proposés mais il m'affiche le meme erreur:"Objet attendu" à la ligne
      if(is_numeric(document.form.jj.value)==false)

      merci
      1. svp si vous avez une idée essayer de m'aider. j'ai passé tt la journé avec cette erreur.
      2. @may0112Est-ce que dans la déclaration ton formulaire s'appelle bien form ?

        <form name='form'>
      3. @Droopy_<form action="ES.php"method="post" name="form" >
        <input name="jj" type="text" value="" size="3" maxlength="2" onblur="f4()" />
        </form>
      4. @may0112J'ai écrit un fichier HMTL avec tout ce que tu as donné et le code de f4 que je t'ai mis, et ça marche...
        À noter: c'est dans Firefox 3.
        <html>
        <head></head>
        <body>
        <script>
        function is_numeric( mixed_var ) {
            return !isNaN( mixed_var );
        }
        function f4()
        {
        	if(!is_numeric(document.form.jj.value))
        	{
        		alert(' Erreur non numérique ');
        	}
        
        	if ((document.form.jj.value) < 1 || (document.form.jj.value) > 31 )
        	{
        		alert(' Erreur de borne ');
        	}
        }
        </script>
        <form action="ES.php"method="post" name="form" >
        <input name="jj" type="text" value="" size="3" maxlength="2" onblur="f4()" />
        </form>
        </body>
        </html>