Question en javascript

atout1 Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   -  
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai une formulaire en php qui contiend 4 champs input.

-tous les champs doit être numérique
-champ 2 doit être inférieur au champ 1
-champ 4 doit être inférieur au champ 1

actuellement je fasse le controle en javascript et dans le cas d'erreur j'affiche une message d'alerte qui demande de vérfier les conditons.

la question est :
est ce c'est possible de faire d'une manière qu'il affiche l'alerte en colorant la condition qui cause l'erreur ?

Merci pour votre intervention
A+

3 réponses

Gremy87 Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   38
 
bonjour,

euh je vois pas bien comment est faite ta page mais pour colorer une phrase (si tes conditions sont écrites) document.getElementById("id").style.color="lacouleur"

si c est le champ que tu veux entourer en couleur
document.getElementById("id").style.border-color="couleur"

si ma réponse ne convient pas, détail un peu ton problème ;)
1
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
Je trouve la réponse pas mal!
Après si il veut plus de détail il faut qu'il donne le code de ces controles :-)
0
atout1 Messages postés 216 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour, voila le code javascript :

au debut je teste si les champs sont vides; apres des differentes conditions et dans le cas où une de ces conditions est faux j'affiche une message d'alerte general qui demande à l'utilisateur de vérifier tout les conditions mais sans savoir kel conditions est la cause de cette erreur. Moi ma question est si c'est possible de faire d'une façon où je peux afficher la message d'alerte avec la condition qui cause le pb. Merci d'avance ou bien afficher la message d'alerte avec tous les conditions mais en colorant le(s) condition(s) qui cause l'erreur


function verifyForm()
{
if((document.verifyForm.epaisseur.value == '') || (document.verifyForm.largeur.value == '') || (document.verifyForm.longueur.value == '') || (document.verifyForm.profondeurSillon.value == '') || (document.verifyForm.Courbure.value == '') || document.verifyForm.longueurGerme.value == '')
|| (document.verifyForm.EnvT.value == '') || (document.verifyForm.Pericarpe.value == '')
|| (document.verifyForm.Testa.value == '') ||
(document.verifyForm.BandeHyaline.value == '') || (document.verifyForm.CoucheAleurone.value == '')
|| (document.verifyForm.tailleMaille.value == ''))
{
alert("Tous les champs * sont obligatoires");
return false;
}
else
{
if(document.verifyForm.tailleMaille.value > document.verifyForm.EnvT.value ||
document.verifyForm.tailleMaille.value > document.verifyForm.Pericarpe.value ||
document.verifyForm.tailleMaille.value > document.verifyForm.Testa.value ||
document.verifyForm.tailleMaille.value>document.verifyForm.BandeHyaline.value ||
document.verifyForm.tailleMaille.value > document.verifyForm.CoucheAleurone.value ||
document.verifyForm.profondeurSillon.value > document.verifyForm.epaisseur.value ||
document.verifyForm.Courbure.value > document.verifyForm.epaisseur.value||
document.verifyForm.longueurGerme.value > document.verifyForm.longueur.value ||
isNaN(document.verifyForm.largeur.value) ||
isNaN(document.verifyForm.longueur.value) ||
isNaN(document.verifyForm.epaisseur.value) ||
isNaN(document.verifyForm.profondeurSillon.value) ||
isNaN(document.verifyForm.Courbure.value) ||
isNaN(document.verifyForm.longueurGerme.value) ||
isNaN(document.verifyForm.EnvT.value) ||
isNaN(document.verifyForm.Pericarpe.value) ||
isNaN(document.verifyForm.Testa.value) ||
isNaN(document.verifyForm.BandeHyaline.value) ||
isNaN(document.verifyForm.CoucheAleurone.value) ||
isNaN(document.verifyForm.tailleMaille.value))
{
alert("Merci de vérifier si :\n-Les valeurs sont numériques\n-La taille de maille est inférieur à la plus petite épaisseur de tissus de l'enveloppe\n-Profondeur du sillon < Epaisseur\n-Profondeur du sillon < Epaisseur\n-Longueur du germe < Longueur");
return false;
}
else
{
return true;
}
}
}
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
Wow!
Tu as 4 champ et pour vérifier les 3 petites conditions que tu nous as dis plus haut tu fais tout ca??
A mon avis faut tout revoir car là...
C'est le bordel!

Ce que je peux te proposer c'est que files ton formulaire html et je te fais une fonction JS pour la vérification.
0
atout1 Messages postés 216 Date d'inscription   Statut Membre Dernière intervention  
 
non en fait c'est pas ça . j'ai plus des champs et plus des conditions. mais en haut c'était un exemple. pour savoir si c'est possible en javascript de colorer dans l'alerte ou pas.

voilà le code HTML

les conditions sont :
-tous les champs sont numériques,
-(profondeur, courbure) < epaisseur
-taille de maille < (envT, pericarpe, testa, bande hyaline, couche aleurone)
-longuer du germe < longueur
<form action='' method='post'>
<table>
<tr>

<td align='right'>epaisseur :</td>

<td><input type='text' name='epaisseur' size=5> </td>
</tr>

<tr>
<td align='right'>largeur :</td>

<td><input type='text' name='largeur' size=5> </td>

</tr>

<tr>

<td align='right'>longueur</td>

<td><input type='text' name='longueur' size=5> </td>
</tr>


<tr>
<td align='right'>profondeur_sillon</td>

<td><input type='text' name='profondeur' size=5> </td>

</tr>

<tr>
<td align='right'>courbure;</td>

<td><input type='text' name='courbure' size=5> </td>

</tr>

<tr>
<td align='right'>longueur_germe</td>

<td><input type='text' name='longueurGerme' size=5></td>
</tr>


<tr>

<td align='right'> env_totale</td>

<td><input type='text' name='envT' size=5> </td>
</tr>


<tr>
<td align='right'>perciarpe</td>

<td><input type='text' name='pericarpe' value='' size=5></td>
</tr>


<tr>

<td align='right'> testa</td>

<td><input type='text' name='testa' value='' size=5> </td>
</tr>


<tr>

<td align='right'> bande_hyaline :</td>

<td><input type='text' name='bandeHyaline' value='' size=5> </td>

</tr>

<tr>

<td align='right'>couche_aleurone :</td>

<td><input type='text' name='coucheAleurone' value='' size=5></td>

</tr>


<tr>
<td align='right'> Taille de maille</td>

<td><input type='text' name='SM' value='' size=5> </td>
</tr>"



</table>

<input class='boutonForm' type='submit' value='valider'/> <br/>

</form>
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
La on a 13 input pas 4...
0
jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
 
Si j'ai bien compris, tu veux changer la couleur du texte qui est dans l'alert ?
C'est a priori impossible (d'après moi)
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
Non je crois qu'il veut colorier l'input qui est en cause!
0
atout1 Messages postés 216 Date d'inscription   Statut Membre Dernière intervention  
 
oui cé ca ma question
0
Gremy87 Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   38
 
waouuuuu ca fais beaucoup de JS pour des controles comme ca...

perso pour ca je te conseil les expressions regulières!!!

contrôle du non vide, du obligatoirement numérique en 2 lignes^^
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
Moi je conseillerais du onBlur sur les inputs déjà, comme ca pas de soucis pour savoir lequel est fautif, dès que l'utilisateur fais nimp ca le remballe ^^
0
Gremy87 Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   38
 
appel a une fonction JS via onBlur qui vérifie le champ via regex ca sera le mieux je pense ;)
0
atout1 Messages postés 216 Date d'inscription   Statut Membre Dernière intervention  
 
merci; est ce que vous pouvez me donner un exemple ?? Merci
0
xav3601 Messages postés 3289 Date d'inscription   Statut Membre Dernière intervention   311
 
Sur chaque champ input tu peut rajouter:

onBlur="if(isNaN(this.value) alert("Ce champ doit être numérique");"

Ca te fera déjà le test en live de savoir si un champ est numérique ou pas. (Syntaxe peut être pas exact).
0
Gremy87 Messages postés 352 Date d'inscription   Statut Membre Dernière intervention   38
 
une parenthese de plus ^^ if(isNaN(this.value)) alert("Ce champ doit être numérique");
0