Valid to field should display message when is set to more then 1 year

jean-pauldehaas
Tera Guru

Hi,

i have a requirements as follows:

1: User will be allowed to set the date 1 year from the date of submission. Date cannot less or exceed the 1 year timeline.

2: Users with Knowledge manager roles can modify the "Valid to" variable dates and can select any future date.

 

for the first one we have a script already in place but its not doing anything:

-------------------------------------------------------------------------------------------------------------

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
   if (isLoading || newValue === '') {
      return;
   }
  
    var cdt = g_form.getValue('valid_to'); //First Date/Time field
var dttype = 'day'; //this can be day, hour, minute, second. By default it will return seconds.

var ajax = new GlideAjax('ClientDateTimeUtils');
ajax.addParam('sysparm_name','getNowDateTimeDiff');
ajax.addParam('sysparm_fdt', cdt);
ajax.addParam('sysparm_difftype', dttype);
ajax.getXML(doSomething);

function doSomething(response){
var answer = response.responseXML.documentElement.getAttribute("answer");
//alert(answer);
if(answer > 365 )
{
g_form.showFieldMsg('valid_to','The date needs to be within the next year.','error');
}
}

    }

-------------------------------------------------------------------------------------------------------------------------------

 

please help

1 ACCEPTED SOLUTION

SumanthDosapati
Mega Sage
Mega Sage

Hi,

To validate that, without client script you can just do it with UI policy as below

Condition as below:

find_real_file.png

 

In Script tab :

find_real_file.png

 

Mark as correct and helpful if it solved your query.

Regards,
Sumanth

 

View solution in original post

10 REPLIES 10

You can follow below link to easily make it work, script include will not be required.

How to validate date field for checking 1 year validation in client script

 

There is also one low code way of achieving this(Preferred approach)

 

No Code date validations through (Catalog) UI Policies

 


Feel free to mark correct, if your issue has been resolved, so it ends up in solved queue.

Will be helpful for others looking for the similar query.

Best Regards
Aman Kumar

Ankur Bawiskar
Tera Patron
Tera Patron

Hi,

So date cannot exceed 1 year from now?

If yes then why to use script include and client script; it can be done with UI policy directly

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

ok but how does it know the current date then ?

 

users shouldnt be able to set a date which exceeds 1 year and it should display a message

Hi,

update script as this and no script include is required

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

	g_form.hideFieldMsg('valid_to');

	var futureDate = new Date(new Date().setFullYear(new Date().getFullYear() + 1)).getTime();

	var selectedDate = new Date(newValue).getTime();

	if(selectedDate > futureDate){
		g_form.showFieldMsg('valid_to','The date needs to be within the next year.','error');
	}

}

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

SumanthDosapati
Mega Sage
Mega Sage

Hi,

To validate that, without client script you can just do it with UI policy as below

Condition as below:

find_real_file.png

 

In Script tab :

find_real_file.png

 

Mark as correct and helpful if it solved your query.

Regards,
Sumanth