Math.abs not working in onChange Client Script

Phong Lo
Tera Guru

I'm developing a client script in my PDI on the Incident Table. When a user changes the state to canceled (value = 8), then currency 1 field gets auto populated with the absolute value of currency 2 field. Screenshot below:

PhongLo_0-1707260971116.png

Below is my Client Script that I'm using that works because it is auto populating the value, but not the absolute value. When I add Math.abs(), what's returning is NaN. So I commented that code out. Any idea what I'm doing wrong?

PhongLo_1-1707261318189.png

 

Much thanks!

1 ACCEPTED SOLUTION

Updated and working Script:

 

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }
    var abc = Math.abs(parseFloat(g_form.getValue('u_currency_type').split(';')[1].replace(/,/g, "")));
    alert(abc);
	g_form.setValue('u_cur','USD'+';'+abc);

}

 

View solution in original post

13 REPLIES 13

Arpan Baishya
Kilo Sage

Hi @Phong Lo,

 

I think you need to convert the value in the Currency 2 field to a numeric format first before performing the Math.abs() operation on it. Could you please try using the following line of code in your Client Script and check if it works?

 

var absolute_value = Math.abs(parseFloat(currency_2_value)); 

 

Hope this helps.

It's still showing up as NaN. This is what 'currency_2_value' is showing up as: 

PhongLo_0-1707317142685.png

 

RAMANA MURTHY G
Mega Sage
Mega Sage

Hello @Phong Lo ,

You should change step number 8 as

 

var absolute_value = Math.abs(parseFloat(currency_2_value));

 

because at step number 7, currency_2_value getting a string value. We should parse it to float/integer to work with Math functions.

 

Please mark my answer as helpful, if it helps you

Thank you

 

 

Please mark my answer helpful  & correct if it helps you
Thank you

G Ramana Murthy
ServiceNow Developer

It's still showing up as NaN. This is what 'currency_2_value' is showing up as: 

PhongLo_1-1707317181280.png