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

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. 

Lucky18
Kilo Contributor

Yeh its assing the value as India and the filed name is also correct,i dont know why its not working

Did you get the messages hat i have shown in the code?

Lucky18
Kilo Contributor

Yeah buddy its not entering into the if condition,can I know why?