Автор Тема: [Автоматизация] Заполнение списка одного Select на основании выбора другого  (Прочитано 541 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Эта тема содержит сообщение, помеченное как лучший ответ. Кликните здесь для перехода к этому сообщению.

Оффлайн Manonegro [?]

  • Новичок
  • *
  • Сообщений: 24
  • Репутация: 0
  • Пол: Мужской
    • Награды
С наступающим Новым Годом!

В IE есть несколько элементов Select (списки значений). После выбора значения в одном из них, в зависимости от этого значения заполняется список другого Select`а. Но при использовании функции _IEFormElementOptionSelect этого не происходит:
Код: AutoIt [Выделить]
$oSelect = _IEGetObjByID($oBlock, $sName)
 _IEAction($oSelect, "focus")
 _IEFormElementOptionSelect($oSelect, $sValue)


В первом выбранное значение появляется, а второй пустой. Во вложении html-код страницы.
Первый Select называется "product", а второй "subproduct"

Пробую принудительно активировать обработчики событий:
Код: AutoIt [Выделить]
А он ругается: Error from function _IEFormElementOptionSelect, $_IESTATUS_InvalidValue (Invalid Mode)


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться
« Последнее редактирование: Декабрь 27, 2018, 19:36:59 от Manonegro »

Русское сообщество AutoIt


Оффлайн Manonegro [?]

  • Новичок
  • *
  • Сообщений: 24

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
В общем, ввиду полной тишины пока решил этот вопрос через известное место: после выставления нужного значения в Select`е делаем такой финт:
Код: AutoIt [Выделить]
Send("{DOWN}")
Send("{UP}")

« Последнее редактирование: Декабрь 28, 2018, 15:55:57 от Manonegro »

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1431
  • Репутация: 178
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
javascript события надо вызывать. Если стандартный onchange не работает, тогда нужно jQuery использовать, если он там подключен.

Помечен как лучший ответ пользователем Manonegro Отправлен Январь 15, 2019, 16:40:17

Оффлайн Manonegro [?]

  • Новичок
  • *
  • Сообщений: 24

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Спасибо. Нашел на заграничном форуме:
Код: AutoIt [Выделить]
Func OnChange($oObject)

   Local $oEvt = $oIE.document.createEvent("HTMLEvents")
   $oEvt.initEvent("change", True, False)
   $oObject.dispatchEvent($oEvt)

EndFunc


Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
3591 Просмотров
Последний ответ Март 04, 2011, 11:55:49
от madmasles
18 Ответов
7177 Просмотров
Последний ответ Март 07, 2012, 20:56:23
от Zaramot
3 Ответов
4306 Просмотров
Последний ответ Июль 30, 2012, 16:12:23
от warezoogle3
5 Ответов
2786 Просмотров
Последний ответ Ноябрь 06, 2013, 03:02:36
от konokrad666
9 Ответов
3619 Просмотров
Последний ответ Февраль 10, 2014, 19:51:13
от AZJIO
6 Ответов
1628 Просмотров
Последний ответ Сентябрь 22, 2014, 19:43:04
от Garrett
16 Ответов
3403 Просмотров
Последний ответ Январь 01, 2015, 08:29:18
от edyapd
0 Ответов
915 Просмотров
Последний ответ Январь 23, 2015, 06:02:08
от ulan44
3 Ответов
905 Просмотров
Последний ответ Июль 27, 2015, 12:47:24
от CreatoR
1 Ответов
1483 Просмотров
Последний ответ Ноябрь 29, 2015, 19:19:23
от ra4o