The CreatorCon Call for Content is officially open! Get started here.

Date time field cannot be in future

FotinaG
Tera Contributor

Hi Team,

 

In var set I have Date time field , however i need to make it unpossible to choose date in future and show an info that  date cannot be in future in 2 languages depending on what user session is.

I tried with Client script into car set and separately in item, also with UI policy, but still behavior is not changing. It had to be easy task, but I cant achieve the goal. Is it an issue that this variable is in var set? 

Could you please help me to find an easy solution?

 

Thank you

Tina

2 ACCEPTED SOLUTIONS

@FotinaG , 

CC : @GlideFather 

 

It should work, if you write client script on variable set too.

Refer below screenshots.

Screenshot (22).png

 

Screenshot (24).png

If this works, please mark it as helpful/accepted — it keeps me motivated and helps others find solutions.
Shashank Jain

View solution in original post

@FotinaG 

you can achieve this without scripting and simply use UI policy

Restrict user for selecting future dates in Service Catalogue. 

Reference from above: You can write a simple UI Policy as show below:

AnkurBawiskar_0-1755161389403.png

 

AnkurBawiskar_1-1755161389364.png

 


Output will be as shown below:

AnkurBawiskar_2-1755161389379.png

 

 

 

If my response helped please mark it correct and close the thread so that it benefits future readers.

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

View solution in original post

20 REPLIES 20

Hi @FotinaG 

if it’s a form on portal, then it must be CATALOG client scrip applied on the variable set.

 

client script (backend/workspace) x catalog client script (portal/employee centre)

 

also you will need to create two catalog client scripts (!!!): an onChange to display the error message upon populating the field and onSubmit to abort submission if the value is still in the future ignoring the message.

 

or it can be done with one script but the onSubmit is more important. So perhaps that and field message to inform not to insert future date..

———
/* If my response wasn’t a total disaster ↙️ drop a Kudos or Accept as Solution ↘️ Cheers! */


@GlideFather Thank you for your reply, yes I do it in catalog client script, thank you for the hint regarding onSubmit, will test it with both script 🙂

@FotinaG ,

 

If this helps, please consider marking my answer as helpful/accepted — it motivates me to stay active in the community and also helps others find relevant solutions more easily.

 

Thank you!

If this works, please mark it as helpful/accepted — it keeps me motivated and helps others find solutions.
Shashank Jain

Ankur Bawiskar
Tera Patron
Tera Patron

@FotinaG 

you should create catalog client script onChange of that date variable.

what did you start and where are you stuck?

If my response helped please mark it correct and close the thread so that it benefits future readers.

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

Hello @Ankur Bawiskar,

 

Thank you, I am trying with Shashank_Jain code, just updated it a little bit, but didnt work, just no behavior in form:

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

    var selectedDate = new Date(newValue);
    var now = new Date();

   
    selectedDate.setSeconds(0, 0);
    now.setSeconds(0, 0);

    if (selectedDate > now) {
   
        alert('The date cannot be in the future');

        // Clear the invalid value
        g_form.setValue(MYVARIABLE, '');
    }
}