Autofill of Age based on Date of Birth

Premkumar1
Giga Expert

Hi Friends,

I have a requirement to auto populate the age based on date of birth.I have created a script include and catalog client script for this but the age is not auto populating.while checking the script Include in background script it is working, I think the problem is with client script, can anyone please check and advise us where I am making mistake

Script Include:

var Agescript = Class.create();
Agescript.prototype = {
checkage: function() {
var dob = this.getParameter(sysparam_id);//get data from catalog
var today = new GlideDateTime(gs.nowDateTime());
var todayyear = today.getYearLocalTime();
var bday = new GlideDateTime(dob.tostring());
var bdayyear = bday.getYearLocalTime();
var age = todayyear - bdayyear;
return age;

},

type: 'Agescript'
};

 

Client Script:

function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}

//Type appropriate comment here, and begin script below
var ga = new GlideAjax('Agescript');
ga.addparam('sysparam_name','checkage');
ga.addParam('sysparam_id',g_form.getValue('dob'));
ga.getXML(Age);
function Age(response){
var ages = response.responseXML.documentElement.getAttribute("Age");
alert("Age is" + ages);
g_form.setValue('age',Age);
}
}

1 ACCEPTED SOLUTION

Hi 

in the below image

in the script below on line 2

Agescript.prototype should be like this. there is a space seen in your line.

I recommend you to create a new client callable Script include .

find_real_file.png

View solution in original post

25 REPLIES 25

dont forget to replace 'sysparam' with 'sysparm' in the script include also now. Also update the addparam method to addParam

When I Select the date of birth instead of age function is getting populated

 

your screenshot did not come through

Getting Age is null when checked with alert.

Omkar Mone
Mega Sage

Hi 

var Agescript = Class.create();
Agescript .prototype = Object.extendsObject(AbstractAjaxProcessor,

{

  checkage: function() {
var dob = this.getParameter(sysparam_id);//get data from catalog
var today = new GlideDateTime(gs.nowDateTime());
var todayyear = today.getYearLocalTime();
var bday = new GlideDateTime(dob.tostring());
var bdayyear = bday.getYearLocalTime();
var age = todayyear - bdayyear;
return age;

},

type: 'Agescript '
});

 

This will work in client script when client callable is ticked.

 

Mark Correct if it helps.

Warm Regards,

Omkar Mone

 

find_real_file.png

www.dxsherpa.com