Forums

javascript form calulation date variable

delacoux 02 Nov, 2011
Hi,
I have been struggling a couple of days with this without success. Thank you in advance for your help.
I use Joomla 1.5.23 and Chronoforms V4.

I have a form loading data from database. There is a field I want to calculate based on the birth date and this field will change with time as years go by.
In the form events / Onload, I have a DB record loader (working fine). Then I dropped a load JS with the following code in it just before the show html action :

window.addEvent('domready', function() {
$('date_naissance').addEvent('change', calculate);
$('date_naissance').addEvent('click', calculate);
});

function calculate() {

var naissance = $('date_naissance').value;
var cat = $('categorie').value;
var now=new Date();
var curr_year=now.getFullYear();
var year_naissance=naissance.getFullYear();
var delta = curr_year - year_naissance;
document.write("delta =" + delta);
document.write("categorie =" + cat);

if (delta>35) { cat= "O-35"; }
else if (delta<=35 && delta>22) { cat= "SEN."; }
else if (delta <= 21 && delta > 18) { cat= "U-21"; }
else if (delta==18) { cat= "U-18";}
else if (delta==17) { cat= "U-17";}
else if (delta==16) { cat= "U-16";}
else if (delta==15) { cat= "U-15";}
else if (delta==14) { cat= "U-14";}
else if (delta==13) { cat= "U-13";}
else if (delta==12) { cat= "U-12";}
else if (delta==11) { cat= "U-11";}
else if (delta==10) { cat= "U-10";}
else if (delta==9) { cat= "U-09";}
else if (delta==8) { cat= "U-08";}
else if (delta==7) { cat= "U-07";}
else if (delta==6) { cat= "U-06";}
else if (delta==5) { cat= "U-05";}
else if (delta==4) { cat= "U-04";}
else { alert("Votre date de naissance semble erronée.");
}
$('categorie').value = cat;
};

In the form, the field_name: 'date_naissance' is selected by the date picker yyyy-mm-dd. What I am aiming is to correct the field 'categorie' on the form and unfortunately it does not change whatever date I put in.

Thank you in advance.
Celine
delacoux 04 Nov, 2011
:D I found the error: getFullYear does not work on the datepicker field value.
I used substring instead and it brings back the year.

d = $('date').value;
var year = (d.substring(0,4));

SOLVED.
This topic is locked and no more replies can be posted.