Function JavaScript petit problème !

Résolu
hellfirewar -  
 hellfirewar -
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 20367 Statut Contributeur 4 509
 
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
hellfirewar
 
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 20367 Statut Contributeur 4 509
 
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
hellfirewar
 
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