Что нового

Симуляция клавиатурного заполнения текстового поля

valdur2000

Знающий
Сообщения
155
Репутация
7
Здравствуйте уважаемые, присутствует текстовое поле, html код элемента внизу:

Код:
<INPUT style="BORDER-BOTTOM-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none" id=plz onkeyup=check_zip_valerie(this.value); name=plz size=5 autocomplete="off">

в которое я ввожу почтовый индекс, состоящий из 5 цифр. После ввода пятой цифры с клавиатуры, срабатывает какая-то явапримочка и в следующем поле автоматом выпрыгивает город..
Пытаюсь делать так,
Код:
$oForm = _IEFormGetCollection($oIE,0)
$oPLZ = _IEFormElementGetObjByName($oForm, 'PLZ')
_IEFormElementSetValue($oPLZ, $PLZ)

поле почтового индекса заполняется, но ява не срабатывает, город внизу не появляется.
Пробовал пользовать _IEAction с разными ключами, но тоже не помогает. Может у кого есть свежие мысли?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


С уважением, ваш Модератор.



Ссылку дайте.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
valdur2000,
Попробуйте так, у меня работает.
Код:
#include <IE.au3>

$sUrl = 'http://...'
$sPLZ = '10969'
$oIE = _IECreate($sUrl)
$hIE = _IEPropertyGet($oIE, 'hwnd')
$oForm = _IEFormGetCollection($oIE, 0)
$oPLZ = _IEFormElementGetObjByName($oForm, 'PLZ')
_IEAction($oPLZ, 'focus')
ControlSend($hIE, '', '[CLASS:Internet Explorer_Server; INSTANCE:1]', $sPLZ)
 
Автор
V

valdur2000

Знающий
Сообщения
155
Репутация
7
to madmasles
Спасибо все работает. я тоже хотел через ControlSend попробовать, но не додумался, что вначале надо фокус на конкретное поле передать, а потом уже ControlSend слать. спасибо.
 
Верх