- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-14-2016 08:51 AM
We have a requirement to capture an effective date on a record producer and I have currently built a Date/Time variable that will allow us to do so. Now with that being said, the rest of the requirement is to prevent users from selecting a date/time in the past.
For example, today is 1/14/2016, therefore the user should NOT be able to select 1/10/2016 as a possible date.
Essentially, we want any date leading up to the current date/time to be read only. Is this a possibility and if so how do we go about it? I am not a programmer, so if there is a script involved, which I am positive there is, it would be much appreciated if you can help with that as well.
Thanks!
Niccole
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-14-2016 11:22 AM
According to the SNow wiki article, the flash method is not supported by the Service Catalog. Thus that is prob why no matter what I am changing it to, it still is failing. Not a huge deal, it would have been nice to have the field flash a color, but the field is mandatory and clearing the value will force them to select a date before they can submit the request.
I very much appreciate all your help!
Here is the final script for anyone who is curious:
Catalog Client Script
Applies to: A Catalog Item
Type: onChange
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue == '') {
return;
}
var dt = getDateFromFormat(newValue, g_user_date_time_format);
var rightNow = new Date();
if (dt < rightNow) {
alert('The date value cannot be before the current date and time. Please correct.');
g_form.clearValue("effective_date");
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-14-2016 08:53 AM
Hi Niccole
You can use the following to check that your field does not contain a date before the current.
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue == '') {
return;
}
var dt = getDateFromFormat(newValue, g_user_date_time_format);
var rightNow = new Date();
if (dt < rightNow) {
alert('The date value cannot be before the current date and time. Please correct.');
// at this point you can choose to clear the field or make it flash
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-14-2016 09:24 AM
Hi Anurag,
That worked !
You say in your script that we can make it flash and clear. I added the following to the script (found on SNow Wiki) to yours, but it doesn't appear to be working. Did I use the wrong code?
if (dt < rightNow) { | ||
alert('The date value cannot be before the current date and time. Please correct.'); | ||
clearValue(effective_date); | ||
flash("effective_date", "#FFFF00", 5); | ||
// at this point you can choose to clear the field or make it flash | ||
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-14-2016 09:38 AM
I don't think "5" is a value you can use with flash...
Think you only can use these:
The arguments for the flash method are as follows: arg1: tablename.fieldname arg2: RGB color or acceptable CSS color like "blue" or "tomato" arg3: integer that determines how long the label will flash.
- Use 2 for a 1-second flash
- Use 0 for a 2-second flash
- Use -2 for a 3-second flash
- Use -4 for a 4-second flash
Do not provide this argument if you want the field label simply colored the specified color
From: Make a Field Label Flash - ServiceNow Wiki
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-14-2016 09:49 AM
Thanks for letting me know. I changed the 5 to a 2, but it still didn't work.