OVH Cloud OVH Cloud

Comparaison de valeurs listes déroulantes HELP

4 réponses
Avatar
Jeanmi
Salut a tous !

J'ai un soucis , je n'arrive pas a vomparer les valeurs de mes listes
déroulantes avant de valider le formulaire
pourquoi ce script ne fonctionne pas ???

Dans le HEAD:

function verifier()
{
if (document.form1.ah.value()>document.form1.deh.value())
{
alert ("Erreur la valeur 'A' doit etre inférieure a la valeur 'De'");
form1.ah.focus();
}
else form1.submit();
}


Dans le BODY:

<form name="form1" method="post" action="toto.php">

<select name="ah" id="ah">
<option value="10">10</option>
<option value="50">50</option>
</select>

<select name="deh" id="deh">
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
<input type="submit" name="Submit" value="Envoyer" onclick="verifier()">
</form>

4 réponses

Avatar
Saad Saad
Salut a tous !

J'ai un soucis , je n'arrive pas a vomparer les valeurs de mes listes
déroulantes avant de valider le formulaire
pourquoi ce script ne fonctionne pas ???

Dans le HEAD:

function verifier()
{
if (document.form1.ah.value()>document.form1.deh.value())
{
alert ("Erreur la valeur 'A' doit etre inférieure a la valeur 'De'");
form1.ah.focus();
}
else form1.submit();
}


Dans le BODY:

<form name="form1" method="post" action="toto.php">

<select name="ah" id="ah">
<option value="10">10</option>
<option value="50">50</option>
</select>

<select name="deh" id="deh">
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
<input type="submit" name="Submit" value="Envoyer" onclick="verifier()">
</form>


Salut,

voici quelques changements

1- value, n'est pas une fonction donc c'est value et pas value()
2- pour empêcher un formulaire d'être submiter, il est préférable
d'utiliser la manière suivante


<html>
<head>
<script>
function verifier(form)
{
if (form.ah.value>form.deh.value)
{
alert ("Erreur la valeur 'A' doit être inférieure a la valeur 'De'");
form.ah.focus();

return false;
}
}
</script>
</head>
<body>

<form name="form1" method="post" action="toto.php" onsubmit="return
verifier(this);">

<select name="ah" id="ah">
<option value="10">10</option>
<option value="50">50</option>
</select>

<select name="deh" id="deh">
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
<input type="submit" name="Submit" value="Envoyer">
</form>
</body>
</html>

bye
bon weekend

--
Saad Saad

Avatar
Jeanmi

Salut a tous !

J'ai un soucis , je n'arrive pas a vomparer les valeurs de mes listes
déroulantes avant de valider le formulaire
pourquoi ce script ne fonctionne pas ???

Dans le HEAD:

function verifier()
{
if (document.form1.ah.value()>document.form1.deh.value())
{
alert ("Erreur la valeur 'A' doit etre inférieure a la valeur 'De'");
form1.ah.focus();
}
else form1.submit();
}


Dans le BODY:

<form name="form1" method="post" action="toto.php">

<select name="ah" id="ah">
<option value="10">10</option>
<option value="50">50</option>
</select>

<select name="deh" id="deh">
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
<input type="submit" name="Submit" value="Envoyer" onclick="verifier()">
</form>



Salut,

voici quelques changements

1- value, n'est pas une fonction donc c'est value et pas value()
2- pour empêcher un formulaire d'être submiter, il est préférable
d'utiliser la manière suivante


<html>
<head>
<script>
function verifier(form)
{
if (form.ah.value>form.deh.value)
{
alert ("Erreur la valeur 'A' doit être inférieure a la valeur
'De'");
form.ah.focus();

return false;
}
}
</script>
</head>
<body>

<form name="form1" method="post" action="toto.php" onsubmit="return
verifier(this);">

<select name="ah" id="ah">
<option value="10">10</option>
<option value="50">50</option>
</select>

<select name="deh" id="deh">
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
<input type="submit" name="Submit" value="Envoyer">
</form>
</body>
</html>

bye
bon weekend

Merci pour le script ca marche dans presque tous les cas, mais il reste

un probleme :
En fait les valeurs pour ah et deh vont de 0 à 23.(ce sont des heures)
Si la valeur de "ah" est égale a 0 ou 1 ca ne fontionne pas, sait tu
pourquoi ?? C'est une question de bool (vrai/faux) ??

Merci d'avance


Avatar
ASM
Jeanmi wrote:

<html>
<head>
<script>
function verifier(form)
{
if (form.ah.value>form.deh.value)
{
alert ("Erreur la valeur 'A' doit être inférieure a la valeur
'De'");
form.ah.focus();
return false;
}
}
</script>
</head>
<body>

<form name="form1" method="post" action="toto.php" onsubmit="return
verifier(this);">

<select name="ah" id="ah">
<option value="10">10</option>
<option value="50">50</option>
</select>

<select name="deh" id="deh">
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
<input type="submit" name="Submit" value="Envoyer">
</form>
</body>
</html>

bye
bon weekend

Merci pour le script ca marche dans presque tous les cas, mais il reste

un probleme :
En fait les valeurs pour ah et deh vont de 0 à 23.(ce sont des heures)
Si la valeur de "ah" est égale a 0 ou 1 ca ne fontionne pas, sait tu
pourquoi ?? C'est une question de bool (vrai/faux) ??


il est possible (et même quasi certain) que les valeurs(*)
soient d'abord considérées comme des chaînes
et qu'avec '0' et '1' ce soient 'false' et 'true' qui soient comparés

function verifier(form) {
if ( (+form.deh.value)<(+form.ah.value)) {
alert (

devrait forcer à comparer des nombres


(*) pour le JS les values dans les formulaires sont toujours des chaînes
(string en GB)
pour s'en servir comme nombres, voici aux choix :
x = Number(form.truc.value);
x = +form.truc.value;
x = form.truc.value*1;
la soluce 2 est préférentielle.


--
Stephane Moriaux et son [moins] vieux Mac


Avatar
Jeanmi
Jeanmi wrote:



<html>
<head>
<script>
function verifier(form)
{
if (form.ah.value>form.deh.value)
{
alert ("Erreur la valeur 'A' doit être inférieure a la valeur
'De'");
form.ah.focus();
return false;
}
}
</script>
</head>
<body>

<form name="form1" method="post" action="toto.php" onsubmit="return
verifier(this);">

<select name="ah" id="ah">
<option value="10">10</option>
<option value="50">50</option>
</select>

<select name="deh" id="deh">
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
<input type="submit" name="Submit" value="Envoyer">
</form>
</body>
</html>

bye
bon weekend

Merci pour le script ca marche dans presque tous les cas, mais il

reste un probleme :
En fait les valeurs pour ah et deh vont de 0 à 23.(ce sont des heures)
Si la valeur de "ah" est égale a 0 ou 1 ca ne fontionne pas, sait tu
pourquoi ?? C'est une question de bool (vrai/faux) ??



il est possible (et même quasi certain) que les valeurs(*)
soient d'abord considérées comme des chaînes
et qu'avec '0' et '1' ce soient 'false' et 'true' qui soient comparés

function verifier(form) {
if ( (+form.deh.value)<(+form.ah.value)) {
alert (

devrait forcer à comparer des nombres


(*) pour le JS les values dans les formulaires sont toujours des chaînes
(string en GB)
pour s'en servir comme nombres, voici aux choix :
x = Number(form.truc.value);
x = +form.truc.value;
x = form.truc.value*1;
la soluce 2 est préférentielle.


Oui justement, je ne trouvais pas la syntaxe adécquate :)

Bon WE et merci a vous deux !