У меня есть это веб-приложение, в котором пользователи могут заполнять и отправлять отчеты. Отчеты и скрипты являются частью всей системы, то есть они используются на нескольких разных клиентах, написанных как на vb, так и на c #. Это веб-версия этих клиентов.
Язык сценариев является javascript и выполняется с использованием различных механизмов сценариев в разных системах. Но для веб-версии это просто выполняется в браузере.
Доступ к различным полям в отчете можно получить, набрав:
ID1.value. Чтобы заставить ID1 подать заявку на поле ввода с идентификатором ID1, мне пришлось в initfunction страницы написать окно ["ID1"] = document.getElementById ("ID1");
Но моя проблема в том, когда этот элемент меняется. Причина в отчете У меня есть специальный элемент, который в браузере переводится в элемент таблицы с полем отчета в каждой ячейке.
Когда я переключаю текущую строку, мне нужно обновить окно ["ID1"], чтобы оно соответствовало правильному полю отчета в выбранной строке. Но при попытке доступа к новой переменной ID1 из события onclick кнопок она не определена.
Я думаю, что при первой отрисовке страницы создается событие onclick, и, как я понимаю, переменные внутри события имеют то же значение (ту же область видимости), что и при создании события.
Таким образом, если ID1.value был чем-то при создании страницы, он будет таким же при вызове, даже если значение ID1 отличается. И это похоже на случай. Когда я отлаживаю страницу, перед входом в событие, ID1.value имеет правильное значение, в то время как внутри события оно не определено, а после события оно имеет правильное значение, и если оно записано в окне ["ID1"], правильно значение также отображается во всех случаях.
Но странная вещь заключается в том, что в другом месте кода у меня была такая же проблема, но вместо того, чтобы иметь код внутри события onclick, у меня сначала была глобальная функция changeActiveRow, а внутри - eval, eval (document.getElementById ("ID1_script")) где ID1_script - это скрытый элемент, значением которого является скрипт, использующий ID1.value, и это работает.
Может кто-нибудь объяснить это?
Спасибо