- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago - last edited 3 weeks ago
Good Morning all--thanks in advance for your help!
Have a request to validate data on Demand record/form for a specific field.
There are existing values in field and we are not cleaning those up..
Sorry fairly new to scripting so be patient..
1. I would change the character limit from 100 to 4 on that field (however I cant because there are 1,000 records with garbage data in that field and we are leaving for now.. (not my call)
2. Required field format is a combo of letters & #'s (alphanumeric & always 4, example Z123)
this is my script however Im able to put any value in and save the record (see attached screenshot also)
or is there a better way to accomplish this? (this is the "on submit" client script, I would have to create an "on change script also)
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
//Type appropriate comment here, and begin script below
}/function onSubmit() {
var fieldName = 'u_car_numbr'; //
var fieldValue = g_form.getValue(fieldName);
var regex = /^[a-zA-Z0-9]*$/;
if (!regex.test(fieldValue)) {
g_form.showFieldMsg(u_car_numbr, 'Only alphanumeric characters are allowed in this field.', 'error');
return false; // Prevents form submission
}
return true; // Allows form submission
}
Solved! Go to Solution.
- Labels:
-
Demand Management
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hi @mborkowski ,
I tried your problem in my PDI and it is working fine, Please check below onSubmit Client Script
function onSubmit() {
//Type appropriate comment here, and begin script below
var fieldName = 'short_description'; // Replace with your actual field name I gave short_description to test
var fieldValue = g_form.getValue(fieldName);
var regex = /^[A-Za-z0-9]{4}$/;
if (!regex.test(fieldValue)) {
g_form.showFieldMsg(fieldName, 'Value must be 4 alphanumeric characters (e.g., Z123).', 'error');
return false;
}
return true;
}
Result:
Please mark my answer correct and helpful if this works for you
Thanks and Regards,
Sarthak
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hi mborkowski,
Please test the following scripts - they should work. I see that also the name convention is not the best (like errors in u_car_numbr), but I left it as it is, so the scripts should work,
Client script (onChange):
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading) return;
var field = 'u_car_numbr';
var value = (newValue || '').toString().toUpperCase();
if (value !== newValue) g_form.setValue(field, value);
var pattern = /^[A-Z][0-9]{3}$/;
g_form.hideFieldMsg(field, true);
if (value && !pattern.test(value)) {
g_form.showFieldMsg(field, 'Format is wrong: letter (A–Z) + 3 digits, for example Z123', 'error');
}
}
Client Script (OnSubmit):
function onSubmit() {
var field = 'u_car_numbr';
var value = (g_form.getValue(field) || '').toString().toUpperCase();
g_form.setValue(field, value);
var pattern = /^[A-Z][0-9]{3}$/;
if (!value) return true; // Allow empty value if the field is not mandatory
if (!pattern.test(value)) {
g_form.showFieldMsg(field, 'Format is wrong: letter (A–Z) + 3 digits, for example Z123', 'error');
return false;
}
return true;
}
You should consider writing a Business Rule in the future as well, to prevent clients from bypassing the check via import/integration. But this is another story, haha. These client scripts also don't block updates to records with "old" garbage values if the field hasn't been changed.
If it was helpful to you, please mark it with a thumb up. Thank you!
Best regards,
Renat Akhmedov
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hi @mborkowski ,
function onSubmit() {
var fieldName = 'u_car_numbr';
var fieldValue = g_form.getValue(fieldName);
var regex = /^[a-zA-Z0-9]*$/;
if (!regex.test(fieldValue)) {
g_form.showFieldMsg(fieldName, 'Only alphanumeric characters are allowed in this field.', 'error');
return false; // Prevents form submission
}
}
replace your script with above and try
Please mark my answer as helpful/correct if it resolves your query.
Regards,
Chaitanya
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hi @mborkowski
Your current regex allows any alphanumeric string of any length. To enforce exactly 4 characters and start with a letter, update the regex like this:
function onSubmit() {
var fieldName = 'u_car_numbr';
var fieldValue = g_form.getValue(fieldName);
var regex = /^[A-Za-z][A-Za-z0-9]{3}$/; // Starts with letter, followed by 3 alphanumeric chars
if (!regex.test(fieldValue)) {
g_form.showFieldMsg(fieldName, 'Value must be 4 characters: start with a letter, followed by 3 alphanumeric characters (e.g., Z123).', 'error');
return false;
}
return true;
}
you can use similar on onchange as well.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
3 weeks ago
Hi @mborkowski ,
I tried your problem in my PDI and it is working fine, Please check below onSubmit Client Script
function onSubmit() {
//Type appropriate comment here, and begin script below
var fieldName = 'short_description'; // Replace with your actual field name I gave short_description to test
var fieldValue = g_form.getValue(fieldName);
var regex = /^[A-Za-z0-9]{4}$/;
if (!regex.test(fieldValue)) {
g_form.showFieldMsg(fieldName, 'Value must be 4 alphanumeric characters (e.g., Z123).', 'error');
return false;
}
return true;
}
Result:
Please mark my answer correct and helpful if this works for you
Thanks and Regards,
Sarthak
