How to display only few choices of two fields when another filed value is selected

Lucky18
Kilo Contributor

Lets take an example like I hav 3 fields like country,state,city

If country is selected as india,then the other two field choices should show only India states in State field and cities in City field.have done something in client script but still notihg is changing.

Please let me know where I went wrong

heres the code I have tried it for country and state fields;

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


var a=g_form.getValue('u_country');

if(a=='India')
{

g_form.addOption('u_statte','ap','Ap');
g_form.addOption('u_statte','karnataka','Karnataka');
g_form.removeOption('u_statte','california','California');
g_form.removeOption('u_statte','washington','Washington');
g_form.removeOption('u_statte','victoria','Victoria');
g_form.removeOption('u_statte','south aus','South Aus');

}
}

Thanks in Advance!

1 ACCEPTED SOLUTION

asifnoor
Kilo Patron

Hi,

Technically for such things you can use dependent field but this works only when the choices are NOT static.

Your client script looks fine. 

Also, since you have written onchange on country field, you can directly access newValue variable which will give the latest selection of the country field. 

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

//var a=g_form.getValue('u_country'); 
g_form.addInfoMessage("Value is "+newValue);

if(newValue=='India')
{
g_form.addInfoMessage("Entered into if condition");
g_form.addOption('u_statte','ap','Ap');
g_form.addOption('u_statte','karnataka','Karnataka');
g_form.removeOption('u_statte','california','California');
g_form.removeOption('u_statte','washington','Washington');
g_form.removeOption('u_statte','victoria','Victoria');
g_form.removeOption('u_statte','south aus','South Aus');

} 
}

Also verify if the field name u_statte is correct or not. 

View solution in original post

20 REPLIES 20

Okay, that woudl mean the comparison is failing.

Try like this once. And i assume the value of India is correct. Its in caps and not small.

if(trim(newValue)== 'India')

Lucky18
Kilo Contributor

The thing is I think i need to compare with === this right?

Lucky18
Kilo Contributor

No Buddy still its not working !

Can you share the screenshot of the infoMessage aftr placing the below code. 

g_form.addInfoMessage("Value is "+newValue+"--"+newValue.length);

Lucky18
Kilo Contributor

No buddy still its showing just Value is India alert...it is not passing ino the if condition and my screenshot button is not working budyy