Обновление поля выбора без вызова onChange - PullRequest
1 голос
/ 02 февраля 2010

Вот чего я хочу достичь, у меня есть поле выбора, которое загружается в несколько строк, когда выбор изменяется (onchange), ключ AJAXed превращается в функцию PHP, которая возвращает массив в формате JSON, тогда мой код очищает параметры поля выбора и применяет значения, которые я только что возвратил из своей функции PHP, отлично.

Проблема в том, что когда устанавливаются новые значения, он снова запускает событие onchange, это устанавливает значения, и мы находимся в начале бесконечного цикла. Firebug ловит ошибку и выплевывает ее.

У меня вопрос, есть ли способ отключить событие onchange, чтобы оно срабатывало только один раз? Я пишу в среде, основанной на прототипе, публикация примера кода была бы немного тяжелой, однако я могу попытаться заполнить любые недостающие данные по запросу.

Ура! ILMV

1 Ответ

1 голос
/ 02 февраля 2010

Использование флаговой переменной. Не беспокойтесь о прекращении действия onchange, вместо этого оберните его логику в условную, основанную на переменной флага.

Обычно вы просто создаете переменную canChange и устанавливаете ее на false при программном обновлении ввода. Затем в логике onchange проверьте значение этой переменной. Если значение равно false, ничего не делайте, но переключите его обратно на true для следующего события onchange. Если это правда, сделайте ваш типичный запрос ajax для новых данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...