- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-15-2020 01:22 AM
Hi Team,
I have a check box in my catalog item
- If the user checks that check box then he must attach an attachment
- If the user not checking that check box in this case he can submit the catalog item without attaching.
Please let me know how to get this done?
Thanks in Advance.,
Balaraju K B
Solved! Go to Solution.
- Labels:
-
Team Development
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-15-2020 02:46 AM
this onSubmit client script should help
1) Ensure the Isolate Script field is set to false for this client script
2) By default when you create new client script it is true
Note:
Ensure you give valid checkbox variable name and your message for alert/form message
function onSubmit() {
//Type appropriate comment here, and begin script below
if(g_form.getValue('checkbox_variable').toString() == 'true'){
if(window == null){
// portal
if(this.document.getElementsByClassName('get-attachment').length == 0) {
g_form.addErrorMessage('You must add attachment before submitting this request.');
return false;
}
}
else{
// native view
var length = $j("li.attachment_list_items").find("span").length;
if(length == 0){
g_form.addErrorMessage('You must add attachment before submitting this request.');
return false;
}
}
}
}
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
09-15-2020 01:33 AM
Hi Balaraju,
I wish if you were on Paris then you could have done this very easily without any coding. However please find the below link for your information which you can use after your upgrade:
Since, you are in orlando release, you may have a look on below Article to achieve your target:
Kindly mark my answer as Correct and helpful based on the Impact.
Regards,
Alok
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-15-2020 01:36 AM
You can do it as follows.
Create a Script include:
var AttachmentUtil = Class.create();
AttachmentUtil.prototype = Object.extendsObject(AbstractAjaxProcessor, {
AttachmentMandatory: function () {
var sysID = this.getParameter('sysparm_id');
var att = new GlideRecord('sys_attachment');
att.addQuery('table_name', 'sc_cart_item');
att.addQuery('table_sys_id', sysID);
att.query();
if (!att.next()) {
return false;
}
else {
return true;
}
}
})
Then create onSubmit client script:
Replace your_checkbox_field with the your checkbox field.
function onSubmit() {
if (g_form.getValue('your_checkbox_field')) {
var id = g_form.getValue('sysparm_item_guid');
var ga = new GlideAjax('AttachmentUtil');
ga.addParam('sysparm_name', 'AttachmentMandatory');
ga.addParam('sysparm_id', id);
ga.getXMLWait();
var ans = ga.getAnswer();
if (ans == "false") {
alert("Please add attachment");
return false;
}
}
}
Based on:

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-15-2020 01:36 AM
Hello Balaraju,
You can use OOTB functionality.
Please open the Catalog item go to "Portal Settings" section and check "mandatory attachment"
Please refer below
Please Mark it helpful/correct if my answer helps in any way to resolve your query.
Reach out to me if any more help required.
Regards
Yash.K.Agrawal
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-15-2020 02:46 AM
this onSubmit client script should help
1) Ensure the Isolate Script field is set to false for this client script
2) By default when you create new client script it is true
Note:
Ensure you give valid checkbox variable name and your message for alert/form message
function onSubmit() {
//Type appropriate comment here, and begin script below
if(g_form.getValue('checkbox_variable').toString() == 'true'){
if(window == null){
// portal
if(this.document.getElementsByClassName('get-attachment').length == 0) {
g_form.addErrorMessage('You must add attachment before submitting this request.');
return false;
}
}
else{
// native view
var length = $j("li.attachment_list_items").find("span").length;
if(length == 0){
g_form.addErrorMessage('You must add attachment before submitting this request.');
return false;
}
}
}
}
Regards
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader