OnChange Catalog Client Script

jay1111
Kilo Guru

Hi Experts,

 

I need a help on this catalog client script. Script looks ok to me, bit it is not working on portal.

 

 

function onChange(control, oldValue, newValue, isLoading) {
	if (isLoading || newValue == '') {
		return;
	}
		if(g_form.getValue('account') == 'Service Account'){
		g_form.setVisible('service_account_link', true);
		g_form.setReadonly('service_account_link', true);
		alert('Service Account');
		
	}
}

 

 

I want to add more conditions to the if condition like. 

 

 

 if((g_form.getValue('account') == 'Service Account') || (g_form.getValue('account') contains 'offshore') ||(g_form.getValue('account') startwith 'billing'))

 

 

Thanks,

Jay

 

 

1 ACCEPTED SOLUTION

Hi @jay1111 ,

You can use in built Javascript methods like startsWith() and includes().

 

var str = g_form.getDisplayValue("account");
if(str.startsWith("billing") || str.includes("offshore")){
alert("Service Account");
}

Get display value of reference field

 

View solution in original post

10 REPLIES 10

SanjivMeher
Mega Patron

Can fix the readonly statement to setReadOnly. with a capital O.

Also try setDisplay instead of setVisible.

 

Hi Sanjiv,

 

Thanks for the response.

 

I changed it, but no help.

 

Account is a reference variable on form, is that the issue.?

 

Thanks,

Jay 

I would suggest using a UI policy. That would be easy to use and should work. Client script should be used, when you can't achieve it using UI policy.

I tried using UI policy first, but it didn't met my requirement.

 

Because I have to use conditions equal, contains and startwith.

if((g_form.getValue('account') == 'Service Account') || (g_form.getValue('account') contains 'offshore') ||(g_form.getValue('account') startwith 'billing'))

 

And some of users added data on account name with upper case and lower case like offshore account, OFFSHORE standard account. In this case, I used contains condition on UI policy and it didn't work. Looks like a case sensitive.

 

After catalog onchange script, I need a similar kind of script onsubmit script to avoid submitting the form for above condition.

 

So, client script is the only option for me.

 

Thanks,

Jay