Trigger onclick event through UI script
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-30-2018 02:01 AM
I am invoking a UI page from a UI Script which gets activated on submit "Save" on collection bucket as shown in the attached screenshot. Also i am returning false just after invoking to prevent the submit as i need to capture the information through UI Page.
My Objective:- Once i have the user information i intend to automatically submit when the user clicks OK in the UI Page. For this, i am calling a UI Script function from Client Script of the UI Page.
Challenge:- The call made from the UI page is received by the UI script but how can we automatically resubmit the form.
Solution:
1. My approach is to either invoke the button by mimic the user click using below code.
var button = document.getElementById("select_0_sysverb_save");
button.click();
2. Other way is to invoke the event(sys_action.value='sysverb_save) that is called when button is clicked.
<button type="submit" onclick="sys_action.value='sysverb_save';" id="select_0_sysverb_save" name="not_important" class="btn btn-primary">Save</button>
Solution 1 does not seem to work as the UI Script is initiated when the page is loaded and i can't establish a relationship by calling a UI script function after the page is loaded. Correct me if wrong.
I am not sure how to implement solution 2.
Awaiting your views guys.
- Labels:
-
User Interface (UI)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-30-2018 02:29 AM
Hi Aditya,
Can you try to use g_form.save() in your ui script client script/section
Mark Correct if this solves your issue and also mark Helpful if you find my response worthy based on the impact.
Thanks
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-30-2018 05:01 AM
not working
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-30-2018 05:56 AM
Hi Aditya,
Can you share the code here if possible?
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-30-2018 06:07 AM
UI Script
function validateFunc(){
try{
if (window.location.href.indexOf('sys_m2m_template.do') != -1 && window.location.href.indexOf('sysparm_collection=service_task')!=-1) {
window.onsubmit = function() {
var dialogClass = window.GlideModal ? GlideModal : GlideDialogWindow;
changeConfirmCancelDialog = new dialogClass("servicetask_approver_email", false, 648, 250);
changeConfirmCancelDialog.setTitle(new GwtMessage().getMessage("Enter the email message"));
changeConfirmCancelDialog.render();
return false;
};
}
}
catch(e){}
}
function emailtext(text){
// g_form.save();
var button = document.getElementById("select_0_sysverb_save");
button.click();
alert(button.id);
}
addAfterPageLoadedEvent(validateFunc);
UI Page- html
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:dialog_notes_ok_cancel
dialog_id="servicetask_approver_email"
textarea_id="email_message_text"
textarea_label="${gs.getMessage('Message')}"
textarea_label_title="${gs.getMessage('Please enter the message that should be sent to approver')}"
textarea_name="email_message_text"
textarea_onkeyup="enableButton()"
textarea_style="height:auto; width: 100%; resize: vertical;"
textarea_title="${gs.getMessage('Enter the message here')}"
ok=""
ok_action="sendEmail"
ok_id="sendemail_ok_btn"
ok_title="${gs.getMessage('Send Email')}"
ok_type="button"
ok_style_class="btn btn-primary disabled"
cancel_title="${gs.getMessage('Close the dialog')}"
/>
</j:jelly>
UI Page - client Script
function sendEmail() {
var textArea = document.getElementById("email_message_text").value;
emailtext(textArea);
}
(function() {
$("change_confirm_reason_text").focus();
})();