Bonjour, j'ai un problème avec cette fonction : Je cherche à lancer la fonction affiche() seulement si le champ de saisie form1.ht.value contient une valeur non numérique, du vide (pas de caractères), ou un caractère espace ou plus d'un.
Pour tester j'ai ecris deux chiffres séparés par un espace, et l'espace est bien détecté par si_espace() mais elle semble ne pas le renvoyer à la fonction function CalculTTC()
C'est bizarre...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 function si_espace(chaine,espace){ var taille=chaine.length; for(i=0;i<taille;i++){ if( chaine.indexOf(" ")!=-1 ) espace=true; } /* ici un caractère espace est reconnu sil est dans la chaine mais il n'est pas envoyé à la fonction qui a appelé */ return espace; // si un caractère espace est trouvé dans la chaine : espace vaudra true sinon false. } function CalculTTC() { var espace=false; si_espace(Form1.ht.value,espace); // Renvoie espace=true si HT contient un caractère espace. console.log("test ht "+espace); // Là le caractère espace n'est pas reconnu puisque il vaut false à cet endroit alors qu'il devrait être à true. if (isNaN(Form1.ht.value)||(Form1.ht.value=="")||(espace) ) { affiche('La valeur <b>Hors Taxes</b> n\'est pas un chiffre, calcul impossible.'); Form1.ht.value = ""; }
Ma partie HTML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Accueil</title> <link rel="stylesheet" href="index.css" /> <script type="text/javascript" src="index.js"></script> </head> <body> <div id="calcul"> <form name='Form1'> Montant hors taxes (HT)<br/> <input type='text' name='ht' /><p/> </form> <input type="button" value="Calculer" onclick="CalculTTC()" /> </div> </body> </html>
J'ai passé la nuit dessus et j'ai pas encore trouvé :/
J'ai essayé les RegExp mais trop dur à comprendre pour le moment pour moi on dirait.
Quelqu'un saurait tester les 3 conditions pour lancer la fonction affiche() ?
Partager