Date Validations - Client Scripts
Import
·
Jan 03, 2020
·
article
Hello,
In this article, i will share some code snippets which takes care of basic date validations at the client side.
1. Selected Date cannot be less than Today
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
var selectedDateNum = getDateFromFormat(newValue,g_user_date_time_format);
var today_date = new Date();
var today_dateStr = formatDate(today_date, g_user_date_time_format);
var todayDateNum = getDateFromFormat(today_dateStr, g_user_date_time_format);
if(selectedDateNum < todayDateNum) {
g_form.showErrorBox("expected_start","Expected date cannot be less than today's date",true);
} else {
g_form.hideFieldMsg('expected_start',true);
}
}
2. Date to be entered between Today and 30 days from today's date.
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
var today_dateStr = formatDate(new Date(),g_user_date_time_format);
var thirty_days_from_today = new Date();
//add 30 days to today's date.
thirty_days_from_today.setDate(thirty_days_from_today.getDate()+30);
var thirty_days_from_todayStr = formatDate(thirty_days_from_today,g_user_date_time_format);
var todayNum = getDateFromFormat(today_dateStr,g_user_date_time_format);
var thirty_daysNum = getDateFromFormat(thirty_days_from_todayStr,g_user_date_time_format);
var selected_dateNum = getDateFromFormat(newValue,g_user_date_time_format);
if(selected_dateNum < todayNum || selected_dateNum > thirty_daysNum) {
g_form.showFieldMsg('expected_start','Date should be between Today and 30 days from Today','error',true);
} else {
g_form.hideFieldMsg('expected_start',true);
}
}
3. Date Range Comparison.
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
//Date to be between Jan 15th and Feb 15th only.
//assuming date format of SN is dd/mm/yyyy. so create 2 dates in that format.
var start_dateStr = formatDate(new Date(getDateFromFormat("15/01/2020 00:00:00",g_user_date_time_format)),g_user_date_time_format);
var start_dateNum = getDateFromFormat(start_dateStr,g_user_date_time_format);
var end_dateStr = formatDate(new Date(getDateFromFormat("15/02/2020 00:00:00",g_user_date_time_format)),g_user_date_time_format);
var end_dateNum = getDateFromFormat(end_dateStr,g_user_date_time_format);
var selected_dateNum = getDateFromFormat(newValue,g_user_date_time_format);
if(selected_dateNum < start_dateNum || selected_dateNum > end_dateNum) {
g_form.showFieldMsg('expected_start','Date should be between Jan 15th 2020 and Feb 15th 2020','error',true);
} else {
g_form.hideFieldMsg('expected_start',true);
}
}
4. Add 5 days to the selected Date and set in a new field.
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
var selected_date = new Date(getDateFromFormat(newValue, g_user_date_time_format));
//add 5 days to the selected date.
selected_date.setDate(selected_date.getDate() + 5);
var selected_dateStr = formatDate(selected_date, g_user_date_time_format);
g_form.setValue('work_start',selected_dateStr);
}
5. Date to be entered only 10 days from selected date field.
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
var expected_date = new Date(getDateFromFormat(g_form.getValue("expected_start"), g_user_date_time_format));
expected_date.setDate(expected_date.getDate()+10);
var expected_dateStr = formatDate(expected_date,g_user_date_time_format);
var expected_dateNum = getDateFromFormat(expected_dateStr,g_user_date_time_format);
var selected_dateNum = getDateFromFormat(newValue,g_user_date_time_format);
if(selected_dateNum < expected_dateNum ) {
g_form.showFieldMsg('work_start','Date should be 10 days from Expected date','error',true);
} else {
g_form.hideFieldMsg('work_start',true);
}
}
Let me know if you have any questions in the comments below.
Mark the article as helpful and bookmark if you found it useful.
View original source
https://www.servicenow.com/community/developer-articles/date-validations-client-scripts/ta-p/2298860