
- Post History
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
on 01-03-2020 05:25 AM
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.
- 26,662 Views
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Date to be entered is today's date. It should not be in the past it should not be in the future??
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Hi
Thank you for the article. I have a requirement to validate minimum past 14 days and 21 days.
Please help me in this.
Regards,
Samiksha
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Hi,
getDateFromFormat and g_user_date_time_format are not defined in Agent Workspace. These works good in Native UI.
I am searching for a good article on Workspace date validations.
Thanks,
Vijayalakshmi.
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
if(selectedDateNum != todayDateNum) {
g_form.showErrorBox("expected_start","Expected date should only be today's date",true);
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
I have a date field in the requirements form, I want to validate that the date I enter must be allow to select up to 90 days from today. How do I achieve this?
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
@Ana Franshesca just follow example 2.
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Hello @asifnoor ,
Thanks for Article ,but i dint not understands it. where we have to defined Data/time field which we created .
i have Date /time field create in incident table , i have try script example 1 but it dint work .
i also tried putting new value as g_form.getValue('u_custome_date_time) but it dint work .
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Hello,
Did this work as expected as I could see that the same code didn't work for me as required. I updated clearing the value if the condition didn't match, but it clears the value if selected tomorrow as well. What's the issue in this code?

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
I'm always getting 0 for selectedDateNum
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
@Tomi Corigliano you need to do this
var selectedDateConvert = getDateFromFormat(newValue, g_user_date_format); // get selected date variable in JS number
var trueSelectedDate = new Date(selectedDateConvert); // convert the JS Number to a JS readable date