Calculate two fields and autopopulate sum

bindu999
Tera Contributor

Hi,

 

    I'm using client script to calculate the value of a+b and get total sum value in the single line text box. This script is not working for me. can you help me

 I'm using 2 select box'es 

a Select Box has option yes or no  (Yes value as 10 ; No Value as 5)

b Select Box has option yes or no (Yes value as 10 ; No Value as 5)

 

I'm using C as a single line text box I need to get the score of what the user selects.

If Select Yes in A; Yes in B; 

It should autopopulate C as 10

Client Script:

function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
var xyz ='';
var X = g_form.getValue('a');
alert('a');
var Y = g_form.getValue('b');
var Z = g_form.getValue('c');

xyz = X+Y+Z;

g_form.setValue('score', xyz);
alert('xyz');

return;
}


}

 

Please Help!!

 

Thank you!!!

1 ACCEPTED SOLUTION

Hi @bindu999 

 

Finally Im here with an answer,

That is you have to write two Onchange client scripts() for two variables ie, var1,var2.

I have tried in my PDI its working as you expected.

Im posting the screenshots as well..

Let me know if you still facing difficulty..

 

Code:

Onchange()

function onChange(control, oldValue, newValue, isLoading) {
if (isLoading || newValue == '') {
return;
}

if (newValue != oldValue && newValue != '') {

 

var f1 = g_form.getValue('variable1');

var f2 = g_form.getValue('variable2');

if (f1 != '' && f2 != '') {

g_form.setValue('result', parseInt(f1) + parseInt(f2));

}

}
}

 

PFA:

find_real_file.pngfind_real_file.png

 

Thanks,

Murthy

Thanks,
Murthy

View solution in original post

21 REPLIES 21

Can you confirm which field have you selected for onChange client script?

Can you update your onChange client script to :

 

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }
	
    var X = g_form.getValue('variables.a');
    var Y = g_form.getValue('variables.b');
    var Z = g_form.getValue('variables.c');

    var xyz = parseInt(X) + parseInt(Y) + parseInt(Z);

    g_form.setValue('score', xyz);
    alert(xyz);

}

Sure, one sec

Yeah I tried this script too, but it didn't work. Not sure why

 

I have to generate risk, i will give questionnaire to end user. He will fill with the options. I need to generate risk score depending on options they select.

A Select Box with options None, Yes, No  (Yes Value 10, No Value 5)

B Select Box with options None, Yes, No  (Yes Value 10, No Value 5)

C Select Box with options None, Yes, No  (Yes Value 10, No Value 5)

 

Score Single Line Text box

Consider the following points:

Variable name seems empty on client script form. Try selecting field a

Is your client script changed from onLoad to onChange? if so then make this inactive and create a new one.

Uncheck Apply to Requested Items

Uncheck Apply to catalog tasks

And use the following script:

 

function onChange(control, oldValue, newValue, isLoading, isTemplate) {
    if (isLoading || newValue === '') {
        return;
    }
	
    var X = g_form.getValue('variables.a');
    var Y = g_form.getValue('variables.b');
    var Z = g_form.getValue('variables.c');

    var xyz = parseInt(X) + parseInt(Y) + parseInt(Z);

    g_form.setValue('variables.score', xyz);
    alert(xyz);

}

Make sure you're providing the field names correctly.