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

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 использовать, если он там подключен.

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


Помечен как лучший ответ пользователем 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 Ответов
3638 Просмотров
Последний ответ Март 04, 2011, 11:55:49
от madmasles
18 Ответов
7308 Просмотров
Последний ответ Март 07, 2012, 20:56:23
от Zaramot
3 Ответов
4371 Просмотров
Последний ответ Июль 30, 2012, 16:12:23
от warezoogle3
5 Ответов
2836 Просмотров
Последний ответ Ноябрь 06, 2013, 03:02:36
от konokrad666
9 Ответов
3699 Просмотров
Последний ответ Февраль 10, 2014, 19:51:13
от AZJIO
6 Ответов
1693 Просмотров
Последний ответ Сентябрь 22, 2014, 19:43:04
от Garrett
16 Ответов
3548 Просмотров
Последний ответ Январь 01, 2015, 08:29:18
от edyapd
0 Ответов
938 Просмотров
Последний ответ Январь 23, 2015, 06:02:08
от ulan44
3 Ответов
960 Просмотров
Последний ответ Июль 27, 2015, 12:47:24
от CreatoR
1 Ответов
1514 Просмотров
Последний ответ Ноябрь 29, 2015, 19:19:23
от ra4o