Function JavaScript petit problème !

Résolu/Fermé
hellfirewar - 17 juil. 2011 à 17:00
 hellfirewar - 17 juil. 2011 à 18:57
Bonjour,
Voila j'aimerai créer une formulaire interactif qui vérifie automatiquement si ce que l'utilisateur a entrer et correcte ou non ! Mais voila dans la partie age, il y a un gros soucis ! J'ai réussis a faire que le nombre est compris entre 3 et 120 grâce au site du zero mais quand je tape par exemple : "5.0" c'est accepter même si il y a un . après le 5 ! Comment faire pour interdire des caractères ? Je sais que c'est avec une variable regex mais je sais pas comment l'utiliser dans le code pour que ce soit correcte !
Voici la page :
//Page Html simple

<form id="myForm">
<label class="form_col" for="age">Âge :</label>
<input name="age" id="age" type="text" />
<span class="tooltip">L'âge doit être compris entre 3 et 120</span>
<br /><br />
</form>

//Verification

check['age'] = function() {

var age = document.getElementById('age'),
tooltipStyle = getTooltip(age).style,
ageValue = parseInt(age.value);

if (!isNaN(ageValue) && ageValue >= 3 && ageValue <= 120) {
age.className = 'correct';
tooltipStyle.display = 'none';
return true;
} else {
age.className = 'incorrect';
tooltipStyle.display = 'inline-block';
return false;
}

};

Je n'ai mis que le minimum pour pas faire trop complet car c'est 150 lignes...
Merci a vous et bonne journée !!!

1 réponse

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
17 juil. 2011 à 18:15
Salut,

Le point est le séparateur décimal, l'équivalent de la virgule en français.
Tu peux utiliser parseInt si tu veux uniquement un nombre entier.
0
Merci de ta réponse, mais comment puis-je le modifier ? Car j'essaye là, mais rien ne marche. =/ Je vous dis si j'ai trouvé. ^^
Merci de m'avoir répondu. =)
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
Modifié par avion-f16 le 17/07/2011 à 18:43
Je n'avais pas lu ton code, mais tu l'utilises déjà.
Je ne vois pas où est le problème, si le visiteur entre 5.01 ou 5.99, la variable ageValue vaudra 5.

Si tu tiens absolument à ne pas permettre à l'utilisateur cela, il faudra utiliser une expression régulière.

function() {
    var age = document.getElementById('age'),
    tooltipStyle = getTooltip(age).style;
    ageValue = age.value;

    var regex = /^[0-9]+$/;

    if(regex.test(ageValue)) {
        var ageValue = parseInt(ageValue);
         
        if(ageValue > 2 && ageValue < 121) {
            alert('Ok');
        } else {
            alert('Vous devez indiquer un nombre compris entre 3 (inclus) et 120 (inclus)');
        }
    } else {
        alert('La valeur du champ n\'est pas un nombre entier');
    }
}
0
Grand merci pour ton petit code ! Maintenant, grâce a toi, je comprend mieux comment l'utiliser :D
Et cela fonctionne très bien, grand merci a toi !
Je te souhaite une bonne soirée ;)
0