Сводка: Я пытаюсь заставить событие изменения активировать элемент HTML, не изменяя его, но событие, похоже, не срабатывает.принудительно изменить событие на элемент DOM без его фактического изменения
Мой сценарий: Существует страница (созданная кем-то еще), которая предназначена для скрыть определенные поля до тех пор, пока не будет выбрано значение из определенного выпадающего списка, после чего появятся зависимые поля. Но в некоторых сценариях раскрывающийся список должен быть автопопулен, а поля должны отображаться по умолчанию. Поэтому я пытаюсь обмануть страницу, показывая зависимые поля при первой загрузке. Я делаю что-то вроде этого:
form.field('THEDROPDOWNFIELD').$el.trigger('change');
Но ничего не происходит. Я обнаружил, что
form.field(‘THEDROPDOWNFIELD’).setValue(form.field('THEDROPDOWNFIELD').$el[0][1].value); //dummy value, first value in the list
form.field('THEDROPDOWNFIELD').$el.trigger('change');
запустит событие изменения. По какой-то причине $ el.trigger ('change') не вызывает изменения, если значение элемента DOM действительно не изменилось. Проблема в том, что я не хочу, чтобы в этом выпадающем списке было фиктивное значение.
Резюме (опять же): Есть ли способ заставить событие смены элемента выпадающего списка срабатывать, когда выбранное значение в выпадающем меню фактически не изменилось?
Вы отметили этот вопрос тегом 'jquery'; это не похоже на код jQuery. Что такое '$ el'? От куда это? Как выглядит HTML-код? – Pointy
Я думаю, что $ el - от Магической Короны. Это способ получить свойства элемента. –
ОК, ну ответ «да», по крайней мере через jQuery, но я не могу сказать вам, как это сделать, не видя разметки (и я, конечно, не знаю, является ли ваш обработчик событий также jQuery) , Еще один трюк (опять же, с jQuery) заключается в том, чтобы установить обработчики для собственных событий, чтобы также можно было использовать пользовательские события «сопутствующие». Это позволяет избежать некоторых проблем, таких как события «щелчка» на таких вещах, как флажки. – Pointy