Conditional Mandatory Attachment

leahdany
Giga Guru

I'm trying to require an attachment based on a condition. I have done this in the past for other projects but it's simply not working this time. I have tried a few answers I found from the Community but absolutely nothing is working. I am in the Human Resources: Service Portal application. I have a record producer that I've put an onSubmit client script on. I put alerts in to validate that my if statement is evaluating to true and it is, and my alert in the try statement is also firing. Here's my client script:

function onSubmit() {

    // If employee's country is Ireland or United Kingdom and Reason for Change is Salary & Payments require an attachment
    var reason = g_form.getValue('u_tcReason');
    var country = g_form.getValue('user_country');

    if (reason == 'Salary & Payments' && country == 'GB' || country == 'IE') {
        alert('in the if statement for my condition. Country is ' + country);
        try {
			alert('in the try');
            var attachments = document.getElementById('header_attachment_list_label');
            if (attachments.style.visibility == 'hidden' || attachments.style.display == 'none') {
                alert('Need attachments.');
                return false;
            }
        } catch (e) {
            var count = getSCAttachmentCount();
            if (count <= 0) {
                alert('Need attachments.');
                return false;
            }
        }
    }
}

Isolate script: false

UI Type: All

I've also tried this approach:

function onSubmit(){
var value = g_form.getValue('request_type');

if(value == 'b' || value == 'd'){

if(this.document.getElementsByClassName('get-attachment').length == 0) {
		alert('You must add an attachment before submitting this request.');
		return false;
	}

}
}

That doesn't work either. With both approaches I get this error message at the top of the form in native:

find_real_file.png

13 REPLIES 13

@sachin.namjoshi  Thanks for your reply. I just tried this and although it does show my alert in native when there is no attachment it still allows the record to submit.

You can return false in your client script to abort submitting record.

 

Regards,

Sachin

I did add the return false, it still submitted.

Pranav Bhagat
Kilo Sage

Hi @leahdany 

 

Check following article from Abhishek

Possible Ways for Making an Attachment Mandatory : Service Portal/Native UI 

Regards
Pranav