Передача значения в текстовое поле на веб-сайте с помощью Excel VBA

Я пытаюсь перемещаться по веб-сайту и выполнять действия на основе данных из Excel.

Я застрял в передаче значений входному элементу, который автоматически заполняет значение в следующем текстовом поле на основе значения, которое мы передали (например: если я передаю почтовый индекс в целевом поле, тогда название города автоматически заполняется в следующем поле). Я могу передавать значения, но это не запускает JS, который автоматически заполняет значение.

Код целевого окна на веб-странице

<input name = "zipcode" class = "inputBoxRequired" id = "zipcode"     onkeypress = "return isNumberKey(event)" onblur = "getZipCity(this.value,'/ProviderPortal')" type = "text" size = "46" maxlength = "5">

Код пробовал

Set Zip = ie_Doc.getElementById("zipcode")
 Zip.Value = Zip_Code 'Here value gets updated but associated js is not triggered
 ie_Doc.getElementById("zipcode").Focus

даже попробовал пожарное событие

Zip.FireEvent ("onchange")

На веб-странице оно упоминается как событие Onkeypress. Я искал решение в Google, но не могу найти точного.

Не могли бы вы поделиться URL-адресом?

QHarr 23.10.2018 15:25

извините @QHarr, это безопасный веб-портал. Я не могу поделиться URL-адресом, мне нужно войти в систему, чтобы просмотреть страницу, о которой я говорю.

Dvyn Resh 23.10.2018 15:36

Вы тоже запустили onBlur? И для некоторых из этих вещей они ожидают нажатия клавиш, которые лучше всего имитируются .Focus сначала, а затем .Sendkeys "Text" ..... ужасно, как и sendkeys.

QHarr 23.10.2018 15:37

как мне это сделать, пожалуйста, предложите

Dvyn Resh 23.10.2018 15:39

Zip.FireEvent ("onkeypress"): Zip.FireEvent ("onblur")

QHarr 23.10.2018 15:40

Если я использовал sendkeys, да, это сработало для меня, но я не хочу использовать sendkeys для выполнения этого действия, есть ли какой-либо надежный метод для достижения этого, например, мы меняем значение в раскрывающемся списке с помощью fireevent.

Dvyn Resh 23.10.2018 15:42

Спасибо @QHarr, используя Zip.FireEvent ("onblur"), его активируют, еще раз большое вам спасибо.

Dvyn Resh 23.10.2018 15:44
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
4
7
1 328
2

Ответы 2

Zip.FireEvent ("onkeypress")
Zip.FireEvent ("onblur")  '<== Apparently this did the trick

Это показанные события.

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

SIM 23.10.2018 16:18

Я столкнулся с тем же сценарием, когда решение проверило этот пост, тогда как в моем случае у меня нет тега onblur, поэтому я немного поискал и нашел решение.

Dim event_onChange As Object
Set event_onChange = ie_Doc.createEvent("HTMLEvents")
event_onChange.initEvent "keypress", True, False
Zip.dispatchEvent event_onChange

Это поможет другим, кто сталкивается с такой же проблемой.

Другие вопросы по теме