Catalog Client script not working in portal

ServicenowDev19
Tera Contributor

I have written catalog client script on variable set.Whenever i add record in multirow variable set i need to get record count in alert.This script is working when i exceute in TRY IT Scetion. But this script is not working in sp portal when i add row in multi row variable set.

I am geeting the error--Error There is a JavaScript error in your browser console 

 

Script:

function onSubmit() {


var mrvsStr = parent.g_form.getValue("additional_users");
var mrvsData = JSON.parse(mrvsStr).length + 1;
//var obj = JSON.parse(mrvsStr);
//var length1 = obj.length;
alert('Number of rows in MRV is - ' + mrvsData);
//parent.g_cart.setQuantity(mrvsData);
parent.g_form.setValue('price',mrvsData);

return true;

 

Please help me why this script is not working in portal.

 

 


}

1 ACCEPTED SOLUTION

Hi,

You have to put below line in separate onLoad client script created on catalog Item (Not in variable set client script)

this.my_g_form=g_form;

AnilLande_1-1680615270829.png

 

and use the script provided by me in onSubmit client script for portal:

AnilLande_0-1680615237375.png

 

Please appreciate the efforts of community contributors by marking appropriate response as correct answer and helpful, this may help other community users to follow correct solution in future.
Thanks
Anil Lande

View solution in original post

21 REPLIES 21

I am getting the alert message but the length is remaining only 1 and it is not setting in that price feild.

the code you have share was having below lines:

g_form.setValue('price', mrvsData);

return mrvsData;

 

Change these lines to below:

this.my_g_form.setValue('price', mrvsData);

return true;

Please appreciate the efforts of community contributors by marking appropriate response as correct answer and helpful, this may help other community users to follow correct solution in future.
Thanks
Anil Lande

I am getting the record count in price feild but not i want to set the price of catalog item according to this count.How to acheive ths can u help me?

Can you please share you both script? 

It is working on my PDI, want to see how it is different in your instance.

Please appreciate the efforts of community contributors by marking appropriate response as correct answer and helpful, this may help other community users to follow correct solution in future.
Thanks
Anil Lande

The solution worked for me but another use case is that now whatever length i am getting i according to that i have to set the price.

i.e length into price of one element

function onSubmit() {


// var mrvsStr = parent.g_form.getValue("additional_users");
var mrvsStr = this.my_g_form.getValue("additional_users")|| '[]';
var mrvsData = JSON.parse(mrvsStr).length + 1;
//var obj = JSON.parse(mrvsStr);
//var length1 = obj.length;
alert('Number of rows in MRV is - ' + mrvsData);

//parent.g_cart.setQuantity(mrvsData);
this.my_g_form.setValue('quantity', mrvsData);

return true;