Script de calcul âge

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Script de calcul âge

Re: Script de calcul âge

par Naroth » 22 oct. 2016, 14:30

Bonjour,

La ligne 11 doit être celle-ci si je ne m'abuse

Code : Tout sélectionner

var j=(d.substring(0,2));
Il y a un moment ou tu passe ici et la variable d est "undefined"
donc que la date n'existe pas.

Ce qui vient en réalité de la ligne

Code : Tout sélectionner

var date = $(this).value();
La fonction "value" n'existe pas en Jquery c'est juste val();

Re: Script de calcul âge

par flolegueu » 22 oct. 2016, 10:53

Merci beaucoup de ta réponse, je me servais de cette fonction pour voir où j'avais des bugs sur des sites mais pas pour du javascript. Après avoir effectué ce que tu me demandais de faire, voici le problème affiché:

age.html:11 Uncaught TypeError: Cannot read property 'substring' of undefined

je corrige cette erreur comment ?

Merci

Re: Script de calcul âge

par @rthur » 20 oct. 2016, 12:57

Bonjour,

Il faut que tu fasses davantage de debug de ton côté pour savoir à quel moment ça bloque et qu'on puisse t'aider efficacement.

1ère étape, ouvre la console Javascript (Ctel+maj+i sur Firefox ou Chrome) et regarde si il y a des messages d'erreur qui pourrait t'aider à identifier le/les problèmes.

Dans ton javascript, tu peux utiliser la fonction console.log() pour vérifier à différents endroits l'état d'exécution de ton script et de ses variables

Code : Tout sélectionner

console.log('test : '+nom_variable);
Et encore mieux, dans l'onglet inspecteur de la console de ton navigateur tu peux poser des points d'arrêt d'exécution javascript pour suivre pas à pas ce qui fonctionne

Re: Script de calcul âge

par flolegueu » 18 oct. 2016, 19:18

Bonsoir et merci de ta réponse, je viens d'enlever disabled, mais toujours rien ... , je me demande si le pb ne vient pas de jquery.

Re: Script de calcul âge

par or 1 » 18 oct. 2016, 19:04

$('#age').on('change', function() {

<input type="text" disabled id="age" size="5" />

cela va être difficile de changer l'age si la possibilité de modification du champ age est désactivée.
c'est le champ date que l'on modifie.

Script de calcul âge

par flolegueu » 18 oct. 2016, 18:23

Bonsoir, j'ai un script de calcul de l'âge, on rentre ça date dans le champs text et l'âge apparaît dans le champs grisé, à côté.

Le problème c'est que rien ne se passe ...

Code : Tout sélectionner

<html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"> </script> </script> <title>Calcul de l'�ge</title> <script language="JavaScript"> (function($){ $('#age').on('change', function() { var date = $(this).value(); var ok = CheckDate(date); if (ok == 1) { var age = tjs_age(date); $('#age').value(age); } }) })(jQuery); function CheckDate(d) { var amin=1850; var amax=2500; var separateur="/"; var j=(d.substring(0,2)); var m=(d.substring(3,5)); var a=(d.substring(6)); var ok=1; if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) { alert("Le jour n'est pas correct."); ok=0; } if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) { alert("Le mois n'est pas correct."); ok=0; } if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) { alert("L'ann�e n'est pas correcte."); ok=0; } if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) ) { alert("Les s�parateurs doivent �tre des "+separateur); ok=0; } if (ok==1) { var d2=new Date(a,m-1,j); j2=d2.getDate(); m2=d2.getMonth()+1; a2=d2.getYear(); if (a2<=100) {a2=1900+a2} if ( (j!=j2)||(m!=m2)||(a!=a2) ) { alert("La date "+d+" n'existe pas !"); ok=0; } ok=d2; } return ok; } function tjs_age(dt) { var d=CheckDate(dt) var m=new Date() var age=""; var age_a=0;var age_m=0; if (d!=0) { if (d.getTime()>m.getTime()) { age="La date de naissance est sup�rieure � la date du jour !"; document.formage.dt_naissance.focus(); } age_a = m.getFullYear()-d.getFullYear(); m.setYear(d.getYear()); if ((d.getTime()>m.getTime())&&(d.getMonth()-m.getMonth()!=0)) {age_a--;} if (d.getMonth() >= m.getMonth()) { age_m = 12 - (d.getMonth()-m.getMonth()) } else { age_m = (m.getMonth()-d.getMonth()) } if (age_m==12) {age_m=0;} if (age_a==1) { age=age_a+" an"} if (age_a>1) { age=age_a+" ans"} if ((age_a>0)&&(age_m>0)) {age+=" et "} if (age_m>0) {age+=age_m+" mois"} if (age=="") { age="moins de 1 mois"} } else { document.formage.dt_naissance.focus(); } return age; } </script> </head> <body> <font face="Arial" size='-1' color="#000099"> <center><b>Calcul de l'�ge</b></center> <br> <form name="formage"> Entrez votre date de naissance (JJ/MM/AAAA) : <INPUT type="text" id="date" name="dt_naissance" size=10 maxlength=10 /> <input type="text" disabled id="age" size="5" /> </form> </body></html>