Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Way to set today to Date column with client script

matsui
Tera Contributor

Hello,

 

I want to set today to Date column with client script.
I understand that I can set it with javascript: new GlideDateTime().getDate() in default value.
But, it needs to set today, only when the value of other column is changed.
So I think that I need to use client script.
How I can set it with client script ?

 

Regards,

1 ACCEPTED SOLUTION

Kavita_Bhojane
Tera Guru

Hi @matsui ,

 

You can use onChange client script. Here, I have set "Today's Date" on change of priority. 

 

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
var today_date = new Date();
var today_date_str = formatDate(today_date, g_user_date_format);
//Type appropriate comment here, and begin script below
if (oldValue != newValue) {
g_form.setValue('u_todays_date', today_date_str);
}
}

 

Screenshot 2023-10-24 at 9.05.11 PM.png

 

Please mark my answer helpful if you find it useful.

 

Thanks,

Kavita Bhojane

View solution in original post

10 REPLIES 10

Tai Vu
Kilo Patron
Kilo Patron

Hi @matsui 

There's couple of ways to achieve this.

1. We can call AJAX from a Clientcallable Script Include and return the function "new GlideDateTime().getDate()" you mentioned.

Sample below.

//Script Include
var CLIncidentUtils = Class.create();
CLIncidentUtils.prototype = Object.extendsObject(AbstractAjaxProcessor, {

	getTodayDate: function(){
		return new GlideDateTime().getDate();
	},

    type: 'CLIncidentUtils'
});

 

//Client Script => just changes to onChange per your requirement
function onLoad() {
	var ga = new GlideAjax('global.CLIncidentUtils');
	ga.addParam('sysparm_name', 'getTodayDate');
	ga.getXMLAnswer(function(response){
		alert(response);
	});
}

 

2. You can also get today date right on Client Script, just use this object "Date()"

Sample below.

 

var today = new Date();
var today_date = formatDate(today_date, g_user_date_format);
alert(today_date);

 

 

Let me know if it works for you.

 

Cheers,

Tai Vu

matsui
Tera Contributor

I fixed your code like the following and it worked as expected:
var today = new Date();
var today_date = formatDate(today , g_user_date_format);
g_form.setValue(dare_field, today_date );

@matsui  Great!

If the approach can save your time. Can you help to mark my comment as solution?

So, it might help others in the same situation. 🤙

 

Cheers,

Tai Vu

Kavita_Bhojane
Tera Guru

Hi @matsui ,

 

You can use onChange client script. Here, I have set "Today's Date" on change of priority. 

 

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
var today_date = new Date();
var today_date_str = formatDate(today_date, g_user_date_format);
//Type appropriate comment here, and begin script below
if (oldValue != newValue) {
g_form.setValue('u_todays_date', today_date_str);
}
}

 

Screenshot 2023-10-24 at 9.05.11 PM.png

 

Please mark my answer helpful if you find it useful.

 

Thanks,

Kavita Bhojane

Hi @matsui ,

 

Could you please also mark my answer helpful?

 

Thanks,

Kavita Bhojane