Thanks for the tip, ricardo. I've decided to initialise the dropdowns with the existing form values before triggering a click event, but I've run into another problem. I can't seem to set the selected option.
I've tried the following with a hardcoded value for state without any luck. $('#field-state').val(state); $("#field-state").val(state).attr("selected","selected"); $("#field-state [EMAIL PROTECTED]").attr("selected","selected"); Yet the dropdowns always have the first item in the options selected. Interestingly, the following works if you need to set the dropdown to select the ' ' option. $('#field-state').val(' '); Any other value just won't keep though. Seems like this is a common problem based on some googling. Anyone else encountered this and found a workaround? On Oct 17, 7:10 pm, ricardobeat <[EMAIL PROTECTED]> wrote: > You can do $("#field-state").unbind('change'); when it starts being > edited and bind the function again when it's done, or you can put > everything in the function inside an IF statement which depends on the > edit mode. > > - ricardo > > On Oct 17, 12:41 pm, newkid85 <[EMAIL PROTECTED]> wrote: > > > I have a form with three dependent location select fields and a text > > field which lets a user add a new city if it is missing from the > > dropdown. The following function works fine when I create a new form. > > It puts the fields in sync to start with and keeps them that way when > > the user makes their selections. > > > There is a problem though when the form is edited. This is because > > once the page loads the function below automatically puts the fields > > back in sync before the user does anything like on the initial > > creation. So the previously selected values are overwritten. > > > When the form is being edited I would like to have thechangeevent > > only fire if the user actually changes any of the dropdowns > > themselves. I am able to check if the form is being edited or created > > but not sure how tochangemy function. > > > function() { > > $("#update-button").hide(); > > if ($("#field-city-text").val() == '') { > > $("#field-city-text-wrapper").hide(); > > } > > $("#field-country").change(function () { > > var country = $(this).val(); > > $("#field-city-wrapper").hide(); > > $("#field-city").val(''); > > updateState(); > > }) > > .change(); > > $("#field-state").change(updateCity).change(addCity); > > $("#field-city").change(addCity); > > > } > > > Any thoughts appreciated.