- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-02-2017 10:16 AM
Hi all,
I'm creating a form for new hires, and on the form I want to have 2 fields where the user enters the new employee's ID #. The intention of the 2nd field is to ensure that they enter the number correctly, much like when you have to repeat an email address or a password on banking stuff.
the 2 variables that need to match are:
emp_workday_id
emp_workday_id2
So the user first enters the value in the first field, and then needs to add the value again in the 2nd field (emp_workday_id2). What need is, if the fields do match, then it triggers a GlideAjax to lookup the user record to populate some other fields on the form. I have this part in place and working.
If the 2 fields do not match, I need it to stop and give an alert that the 2 fields do not match. Should I be putting this all in one catalog client script? I'm thinking yes, but please advise.
function onChange(control, oldValue, newValue, isLoading) {
if (newValue == ''){
g_form.setValue('first_name','');//name of field on form you want to auto populate
g_form.setValue('last_name','');//name of field on form you want to auto populate
g_form.setValue('supervisor','');//name of field on form you want to auto populate
g_form.setValue('emp_location','');//name of field on form you want to auto populate
}
var ga = new GlideAjax('u_employee_details_lookup_Ajax');//name of script include
ga.addParam('sysparm_name', 'getEmployeeDetails');//name of function on script include
ga.addParam('sysparm_user', g_form.getValue('emp_workday_id2'));//name of field on form triggering call
ga.getXML(EmployeeDetailsLookup); // Always try to use asynchronous (getXML) calls rather than synchronous (getXMLWait)
}
// Callback function to process the response returned from the server
function EmployeeDetailsLookup(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
var answers = answer.split(',');
g_form.setValue('first_name',answers[0]);
g_form.setValue('last_name',answers[1]);
g_form.setValue('supervisor',answers[2]);
g_form.setValue('emp_location',answers[3]);
}
now for the part that ensure the 2 fields I match I need help folding in something like this?
var ID1
var ID2
ID1=g_form.getValue(emp_workday_id);
ID2='current.emp_workday_id2';
//then something like
if ID1=ID2//then it goes on to the GlideAjax line in my script above
else sMessage = 'Your entry does not match, please check the Workday ID number and re-enter.'; //and stop them from moving forward
am I headed in the right direction?
Solved! Go to Solution.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-02-2017 07:44 PM
in this script showFieldMsg() syntax is wrong, please change it something like, and it should display the messge.
g_form.showFieldMsg('emp_workday_id2' ,'Your entry does not match, please check the Workday ID # and re-enter');
Also, in earlier provided client script if condition has to be correct.
if (newValue == g_form.getValue('emp_workday_id')) field name is not in quotes
please check if this helps.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-02-2017 07:44 PM
in this script showFieldMsg() syntax is wrong, please change it something like, and it should display the messge.
g_form.showFieldMsg('emp_workday_id2' ,'Your entry does not match, please check the Workday ID # and re-enter');
Also, in earlier provided client script if condition has to be correct.
if (newValue == g_form.getValue('emp_workday_id')) field name is not in quotes
please check if this helps.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-03-2017 07:40 AM
thanks Shishir!
I ended up with this and it works....however how do I get the field message to clear if the correct entry is then entered?
function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}
var ID1 = g_form.getValue('emp_workday_id');
var ID2 = g_form.getValue('emp_workday_id2');
if
(ID1 == ID2);
else{
g_form.showFieldMsg('emp_workday_id2','Your entry does not match, please check the Workday ID # and re-enter','error');
g_form.clearValue('emp_workday_id2');
}
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-03-2017 07:45 AM
you can use hideFieldMsg() function to hide the message.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-03-2017 07:44 AM
nevermind on that, got it, thanks!
function onChange(control, oldValue, newValue, isLoading) {
g_form.hideFieldMsg('emp_workday_id2');
if (isLoading || newValue == '') {
return;
}
var ID1 = g_form.getValue('emp_workday_id');
var ID2 = g_form.getValue('emp_workday_id2');
if
(ID1 == ID2);
else{
g_form.showFieldMsg('emp_workday_id2','Your entry does not match, please check the Workday ID # and re-enter','error');
g_form.clearValue('emp_workday_id2');
}
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-03-2017 07:46 AM
oh. you have already figured out that.