Список выборки HTML: почему onchange назвали бы дважды?

У меня есть страница со списком выборки (ASP.NET Страница MVC)

Список выборки и onchange событие указаны как это:

<%=Html.DropDownList("CompanyID", Model.CompanySelectList, "(select company)", new { @class = "data-entry-field", @onchange = "companySelectListChanged()" })%>

Функция companySelectListChanged становится названной дважды?

Я использую изящный код в этом вопросе получить вызывающую сторону.

оба раза вызывающая сторона является onchange событием, однако если я смотрю на вызывающую сторону вызывающих сторон, использующую:

arguments.callee.caller.caller

первый вызов возвращает некоторый системный код как вызывающую сторону (я предполагаю), и вторые неопределенные возвраты вызова.

Я проверяю на неопределенный, чтобы только реагировать однажды на onchange, но это не кажется идеальным, whcy onchange назвали бы дважды?

ОБНОВЛЕНИЕ:

хорошо, найденный преступником!... кроме меня :-) но проблемы вызывания companySelectListChanged функции дважды все еще стоит.

onchange событие установлено непосредственно на выборе, как упомянуто. Это вызывает companySelectListChanged функцию.

.. заметьте класс 'поля ввода данных', теперь в отдельном связанном файле JavaScript, событие изменения на всех полях с этим классом связывается с функцией, которая изменяет цвет кнопки сохранения. Это означает, что на onchange существует два события, но companySelectListChanged называют дважды?

Дополнительная привязка установлена следующим образом:

$ ('.data-entry-field') .bind ('нажатие клавиши keyup изменение', функция (e) {highLightSaveButtons ();});

Предположение, что его возможное имеет 2 события изменения на списке выборки, его, предположило бы, что установка нажатия клавиши и keyup событий может повреждать что-то?

Какие-либо идеи?

ДРУГОЕ ОБНОВЛЕНИЕ:

Избранный элемент выглядит хорошо и все работы, если я удаляю дополнительную привязку 'изменения'. когда привязка 'изменения' добавляется, что событие стреляет однажды, и зашитый 'onchange' запущен дважды.

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

5
задан Community 23 May 2017 в 10:33
поделиться

1 ответ

Я согласен с вашей оценкой. Я обновил свой небольшой пример на http://gutfullofbeer.net/onchange.html , чтобы включить обработчик jQuery в дополнение к обработчику DOM 0 (тот, который установлен с атрибутом «onchange»). Похоже, это ошибка jQuery или, по крайней мере, неспособность jQuery справиться со странностями IE.

Я зарегистрировал билет jQuery 6593.

3
ответ дан 14 December 2019 в 19:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: