- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-23-2023 01:12 AM - edited ‎02-23-2023 01:28 AM
Hi all,
My requirement is I have two fields
Number release field is a choice type (Max, Min, High and low) and NUMBER field is a string
f the user selects "Max" from "Number release" field then the user should only be allowed to enter numerical data without any dots in the NUMBER field
(Eg: Correct:2, Incorrect:2.3, Incorrect: ABC, Incorrect: A.B.C)
Note: All the NUMBER to be captured and stored with three dots in between the digits. To use 0 wherever, necessary.
For eg: Say Major is entered as 15 in the version number field, then it should be stored in the system as 15.0.0.0
Say Minor is entered as 15.2 in the version number field, then it should be stored in the system as 15.2.0.0
Say Maintenance Pack is entered as 15.2.3, then it should be stored in the system as 15.2.3.0
Say Patch is entered as 15.2.3.4, then it should be stored in the system as 15.2.3.4B
Below one is my code it is working good without "g_form.clearValue('number'); " this line. Actually this is required to erase or clear incorrect values but it is erasing correct values as well. Without this line code is capturing or allowing incorrect values to saving data. Please help me any alternate way to resolve this is ASAP.
var num = g_form.getValue('number');
var release = g_form.getValue('number_release');
var mi = '.' + '0';
var mnpc = '.' + '0' + '.' + '0';
var ptch = '.' + '0' + '.' + '0' + '.' + '0';
try {
// Validate the input based on the selected release type
if (release === 'max') {
// Allow only integers with no dots
if (/^\d+$/.test(num)) {
g_form.setValue('number', newValue + ptch);
} else {
g_form.clearValue('number');
// Display an error message if the input is invalid
alert('Please enter a valid integer with no dots');
}
} else if (release === 'min') {
// Allow integers with one dot
if (/^\d+\.\d+$/.test(num)) {
g_form.setValue('number', newValue + mnpc);
} else {
g_form.clearValue('number');
alert('Please enter a valid number with one dot');
}
} else if (release === 'high') {
// Allow integers with two dots
if (/^\d+\.\d+\.\d+$/.test(num)) {
g_form.setValue('number', newValue + mi);
} else {
//g_form.clearValue('number');
// Display an error message if the input is invalid
alert('Please enter a valid number with two dots');
}
} else if (release === 'low') {
// Allow integers with three dots
if (/^\d+\.\d+\.\d+\.\d+$/.test(num)) {
g_form.setValue('number', newValue);
} else {
g_form.clearValue('number');
// Display an error message if the input is invalid
alert('Please enter a valid number with three dots');
}
}
} catch (ERR) {
}
Thanks.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-23-2023 09:05 AM
@Community Alums try this
Bharath Chintala
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-23-2023 01:20 AM
@Community Alums
what debugging did you perform?
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-23-2023 01:23 AM
my code it is working good without "g_form.clearValue('number'); " this line. Actually this is required to erase or clear incorrect values but it is erasing correct values as well. Without this line code is capturing or allowing incorrect values to saving data. Please help me any alternate way.
Regards
Nazma
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-23-2023 03:04 AM
@Community Alums
why are you again setting the same field?
update as this and test
var num = g_form.getValue('number');
var release = g_form.getValue('number_release');
var mi = '.' + '0';
var mnpc = '.' + '0' + '.' + '0';
var ptch = '.' + '0' + '.' + '0' + '.' + '0';
try {
// Validate the input based on the selected release type
if (release === 'max') {
// Allow only integers with no dots
if (/^\d+$/.test(num) && num.indexOf(ptch) == -1) {
g_form.setValue('number', newValue + ptch);
} else {
g_form.clearValue('number');
// Display an error message if the input is invalid
alert('Please enter a valid integer with no dots');
}
} else if (release === 'min') {
// Allow integers with one dot
if (/^\d+\.\d+$/.test(num) && num.indexOf(mnpc) == -1) {
g_form.setValue('number', newValue + mnpc);
} else {
g_form.clearValue('number');
alert('Please enter a valid number with one dot');
}
} else if (release === 'high') {
// Allow integers with two dots
if (/^\d+\.\d+\.\d+$/.test(num) && num.indexOf(mi) == -1) {
g_form.setValue('number', newValue + mi);
} else {
//g_form.clearValue('number');
// Display an error message if the input is invalid
alert('Please enter a valid number with two dots');
}
} else if (release === 'low') {
// Allow integers with three dots
if (/^\d+\.\d+\.\d+\.\d+$/.test(num)) {
g_form.setValue('number', newValue);
} else {
g_form.clearValue('number');
// Display an error message if the input is invalid
alert('Please enter a valid number with three dots');
}
}
} catch (ERR) {
}
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎02-23-2023 03:27 AM
Thank you for quick response. Issue is not resolved. same issue I am getting. Actually loop of if and else both are satisfying in every condition. Please help me to debug it
if (release === 'major') {
// Allow only integers with no dots
if (/^\d+$/.test(num) && num.indexOf(ptch) == -1) {
g_form.setValue('version_number', newValue + ptch);
} else {
g_form.clearValue('version_number');
alert('Please enter a valid integer with no dots');
}