Fonction javascript

Résolu/Fermé
may0112 Messages postés 37 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 16 décembre 2008 - 18 nov. 2008 à 15:43
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 - 19 nov. 2008 à 18:09
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
A voir également:

3 réponses

Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
18 nov. 2008 à 17:42
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 ');
}
}
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
18 nov. 2008 à 17:53
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 ');
}


}
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
18 nov. 2008 à 18:02
Sauf si tu veux faire apparaitre deux messages d'erreurs différents,
mais d'accord, c'est pas le sujet ;-)
0
may0112 Messages postés 37 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 16 décembre 2008 1
18 nov. 2008 à 22:33
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
0
may0112 Messages postés 37 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 16 décembre 2008 1
18 nov. 2008 à 23:06
svp si vous avez une idée essayer de m'aider. j'ai passé tt la journé avec cette erreur.
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25 > may0112 Messages postés 37 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 16 décembre 2008
18 nov. 2008 à 23:12
Est-ce que dans la déclaration ton formulaire s'appelle bien form ?

<form name='form'>
0
may0112 Messages postés 37 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 16 décembre 2008 1 > Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009
18 nov. 2008 à 23:13
oui
0
may0112 Messages postés 37 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 16 décembre 2008 1 > Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009
18 nov. 2008 à 23:16
<form action="ES.php"method="post" name="form" >
<input name="jj" type="text" value="" size="3" maxlength="2" onblur="f4()" />
</form>
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25 > may0112 Messages postés 37 Date d'inscription mardi 14 octobre 2008 Statut Membre Dernière intervention 16 décembre 2008
18 nov. 2008 à 23:31
J'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>
0