Function JavaScript petit problème !
Résolu
hellfirewar
-
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 !!!
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
-
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.-
-
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'); } } -
-