Skip to content

Commit d2a5e44

Browse files
Date Range Validations (#2568)
* README.md * dateRangeValidation.js * Update README.md
1 parent 263a8fe commit d2a5e44

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Date Range Validation (Within 30 Days) in Client Side
2+
3+
This ServiceNow client script provides real-time date validation for form fields, ensuring users can only select dates within a specific 30-day window from today's date. The script runs automatically when a user changes a date field value, providing immediate feedback and preventing invalid date submissions.
4+
5+
The script validates that any date entered in a form field meets these criteria:
6+
Minimum Date: Today's date (no past dates allowed)
7+
Maximum Date: 30 days from today's date
8+
Real-time Validation: Instant feedback as users type or select dates
9+
User-friendly Errors: Clear error messages explaining the valid date range
10+
Automatic Field Clearing: Invalid dates are automatically cleared to prevent submission
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
2+
if (isLoading || newValue === '') {
3+
return;
4+
}
5+
6+
var todayDate = new Date();
7+
var futureDate = new Date();
8+
futureDate.setDate(futureDate.getDate() + 30);
9+
10+
var todayDateStr = formatDate(todayDate, g_user_date_format);
11+
var futureDateStr = formatDate(futureDate, g_user_date_format);
12+
13+
var selectedDateNum = getDateFromFormat(newValue, g_user_date_format);
14+
var todayDateNum = getDateFromFormat(todayDateStr, g_user_date_format);
15+
var futureDateNum = getDateFromFormat(futureDateStr, g_user_date_format);
16+
17+
if (selectedDateNum < todayDateNum || selectedDateNum > futureDateNum) {
18+
g_form.showFieldMsg(control, 'Date must be between today and 30 days from today', 'error');
19+
g_form.clearValue(control);
20+
} else {
21+
g_form.hideFieldMsg(control);
22+
}
23+
}

0 commit comments

Comments
 (0)