Как заполнить текстовое поле, использующее JavaScript, для предложения доступных записей с использованием Excel VBA? Заполняя текстовое поле вручную, я начинаю набирать несколько букв, и под текстовым полем появляется список доступных входных данных, из которых я могу выбрать. Мне нужно щелкнуть мышью или использовать клавиши со стрелками, чтобы перейти к нужной записи в раскрывающемся списке JavaScript и нажать Enter.
Это ключевое отличие от других обычных полей ввода. Если я просто ввожу текст в поле ввода и перехожу к следующему полю ввода, не выбирая запись в раскрывающемся списке, ввод не регистрируется. Поэтому я не могу просто найти элемент поля ввода и изменить его значение. Я считаю, что мне нужно выполнить javascript, который активирует выпадающий список, который я должен затем выбрать из него.
HTML-код для ввода текста:
<td id="input2" class="createInputField" colspan="0" valign="middle"
<input value="" id="" name="docTypeDisplay" title="Document Type" size="18" type="text">
<input value="" name="docType" type="hidden">
<input value="" name="docTypeID" type="hidden">
В первой строке входного тега приведенного выше кода есть 5 прослушивателей событий - размытие, dblclick, focus, keydown и нажатие клавиш из javascript. Я попытался найти javascript, но он не совсем понятен и является H-U-G-E! Итак, учитывая это ограничение, вот что я попробовал:
IE.Document.getElementById("input2").getElementsByTagName("input")(0).Value = "Monthly Report"
Set objEvent = IE.Document.createEvent("HTMLEvents")
objEvent.initEvent "change", False, True
IE.Document.getElementById("input2").getElementsByTagName("input")(0).dispatchEvent objEvent
и вариации путем изменения первого аргумента в objEvent.initEvent на «размытие», «dblclick», «focus», «keydown» и «keypress». Я не получаю никаких ошибок, и вход не регистрируется.
Тогда я попробовал:
IE.Document.getElementById("input2").getElementsByTagName("input")(0).Value = "Monthly Report"
IE.Document.getElementById("input2").getElementsByTagName("input")(0).FireEvent ("onchange")
а также пробовал:
IE.Document.getElementById("input2").getElementsByTagName("input")(0).Focus
IE.Document.getElementById("input2").getElementsByTagName("input")(0).Value = "Monthly Report"
IE.Document.getElementById("input2").getElementsByTagName("input")(0).Blur
и ничего не сработало.
Может кто-нибудь помочь, пожалуйста? Я думаю, что я исчерпал Google ищет решение для этого.