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 the change event
> 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 to change my 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.

Reply via email to