Add an additional choice field to 'change_confirm_reason' ui page

rohitservicenow
Mega Guru

Hi, I have a need to add an additional choice field to 'change_confirm_reason' ui page which will be copied to a custom field, 'Cancel Reason' on Change request form. 

 

rohitservicenow_0-1668486443441.png

 

Thank you in advance.

9 REPLIES 9

Ankur Bawiskar
Tera Patron
Tera Patron

@rohitservicenow 

you can use jelly tag <g:ui_choice_input_field> for this

check this

How to create "choice" field on "UI PAGE" 

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Thank you @Ankur Bawiskar 

I am now able to create the choice, however having difficulties copying it to 'Work notes' field. 

Here is my code snippet:

 

_________________________________________________________

HTML

_________________________________________________________

<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<g:ui_choice_input_field id="choice_id" name="choice_name"
label="${gs.getMessage('Select Cancel Code')}">
<option value="none">${gs.getMessage('--None--')}</option>
<option value="1">ABC</option>
<option value="2">CDE</option>
<option value="3">EFG</option>
<option value="4">HIJ</option>
<option value="5">JKL</option>
</g:ui_choice_input_field> <br> </br>
<g:dialog_reason_ok_cancel dialog_id="change_confirm_reason"
textarea_id="change_confirm_reason_text"
textarea_label="${gs.getMessage('Reason')}"
textarea_label_title="${gs.getMessage('A reason is required to cancel this change')}"
textarea_name="change_confirm_reason_text"
textarea_onkeyup="enableButton()"
textarea_onchange="enableButton()"
textarea_style="height:auto; width: 100%; resize: vertical;"
textarea_title="${gs.getMessage('Enter the reason here')}"
ok_action="invokePromptCallBack"
ok="return invokePromptCallBack('onPromptComplete');"
cancel="return invokePromptCallBack('onPromptCancel');"
/>
</j:jelly>

_________________________________________________________

Client script: 

_________________________________________________________

function invokePromptCallBack(source) {
var gm = GlideModal.get();
var type = typeof (source) === 'string' ? 'cancel' : 'ok';
var pref = (type === 'ok') ? 'onPromptComplete' : 'onPromptCancel';
var textArea = $('change_confirm_reason_text');
var cancelCode = $('choice_id');
g_form.setValue('work_notes', cancelCode);
if (!textArea) {
gm.destroy();
return false;
}
var f = gm.getPreference(pref);
if (typeof (f) === 'function') {
try {
f.call(gm, textArea.value.trim());
} catch (e) {}
}
gm.destroy();
return false;
}

@rohitservicenow 

Glad to know that my comment helped.

Please mark my response as correct and helpful to close the thread.

The discussion can continue on your follow up question.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

@rohitservicenow 

update as this to get the choice values

<g:ui_choice_input_field id="choice_id" name="choice_id"

and also this

var cancelCode = gel('choice_id').value;

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader