From 118f351ee4c3b94c763b658811b5500a7f1cc1fb Mon Sep 17 00:00:00 2001 From: prudvi-sai-posetty Date: Tue, 28 Oct 2025 13:18:52 +0530 Subject: [PATCH 1/3] README.md --- .../Date Range Validation (Within 30 Days)/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Client-Side Components/Client Scripts/Date Range Validation (Within 30 Days)/README.md diff --git a/Client-Side Components/Client Scripts/Date Range Validation (Within 30 Days)/README.md b/Client-Side Components/Client Scripts/Date Range Validation (Within 30 Days)/README.md new file mode 100644 index 0000000000..b381235c10 --- /dev/null +++ b/Client-Side Components/Client Scripts/Date Range Validation (Within 30 Days)/README.md @@ -0,0 +1 @@ +Date Range Validation (Within 30 Days) in Client Side From 2a74c2216ad40751f500612d0747b39363555b05 Mon Sep 17 00:00:00 2001 From: prudvi-sai-posetty Date: Tue, 28 Oct 2025 13:23:46 +0530 Subject: [PATCH 2/3] dateRangeValidation.js --- .../dateRangeValidation.js | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 Client-Side Components/Client Scripts/Date Range Validation (Within 30 Days)/dateRangeValidation.js diff --git a/Client-Side Components/Client Scripts/Date Range Validation (Within 30 Days)/dateRangeValidation.js b/Client-Side Components/Client Scripts/Date Range Validation (Within 30 Days)/dateRangeValidation.js new file mode 100644 index 0000000000..5c9f15fd1c --- /dev/null +++ b/Client-Side Components/Client Scripts/Date Range Validation (Within 30 Days)/dateRangeValidation.js @@ -0,0 +1,23 @@ +function onChange(control, oldValue, newValue, isLoading, isTemplate) { + if (isLoading || newValue === '') { + return; + } + + var todayDate = new Date(); + var futureDate = new Date(); + futureDate.setDate(futureDate.getDate() + 30); + + var todayDateStr = formatDate(todayDate, g_user_date_format); + var futureDateStr = formatDate(futureDate, g_user_date_format); + + var selectedDateNum = getDateFromFormat(newValue, g_user_date_format); + var todayDateNum = getDateFromFormat(todayDateStr, g_user_date_format); + var futureDateNum = getDateFromFormat(futureDateStr, g_user_date_format); + + if (selectedDateNum < todayDateNum || selectedDateNum > futureDateNum) { + g_form.showFieldMsg(control, 'Date must be between today and 30 days from today', 'error'); + g_form.clearValue(control); + } else { + g_form.hideFieldMsg(control); + } +} From 0479b6ea16c30da70d0705c730e6082b497c00cb Mon Sep 17 00:00:00 2001 From: prudvi-sai-posetty Date: Tue, 28 Oct 2025 13:29:31 +0530 Subject: [PATCH 3/3] Update README.md --- .../Date Range Validation (Within 30 Days)/README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Client-Side Components/Client Scripts/Date Range Validation (Within 30 Days)/README.md b/Client-Side Components/Client Scripts/Date Range Validation (Within 30 Days)/README.md index b381235c10..b020f6f58d 100644 --- a/Client-Side Components/Client Scripts/Date Range Validation (Within 30 Days)/README.md +++ b/Client-Side Components/Client Scripts/Date Range Validation (Within 30 Days)/README.md @@ -1 +1,10 @@ Date Range Validation (Within 30 Days) in Client Side + +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. + +The script validates that any date entered in a form field meets these criteria: +Minimum Date: Today's date (no past dates allowed) +Maximum Date: 30 days from today's date +Real-time Validation: Instant feedback as users type or select dates +User-friendly Errors: Clear error messages explaining the valid date range +Automatic Field Clearing: Invalid dates are automatically cleared to prevent submission