2015-09-02 2 views
1

Я пытаюсь перейти через интернет-проводник через Excel VBA.Навигационный триггер VBA IE Javascript

Это код VBA я использую, чтобы сделать это, который работает отлично:

IEDoc.getElementById("PROGRAMME-select").selectedindex = 1

Однако для другого выпадающего меню, которое после выбора динамически изменяет остальную часть формы, код из выше не работает. Я предполагаю, что это связано с javascript веб-страницы. Это HTML-код его:

<DIV id=Q_FORMAT jQuery1441195683481="347"> 
<INPUT id=Q_FORMAT_data value='{"name":"FORMAT","inputType":"select"}' type=hidden name=Q_FORMAT_data> 
<DIV style="DISPLAY: block" id=FORMAT-label> 
<LABEL><B>Format :</B> </LABEL></DIV><SELECT id=FORMAT-select name=FORMAT-select> 
<OPTION id=FORMAT_EMPTY_OPTION value=EMPTY_OPTION></OPTION> 
<OPTION id=FORMAT_YES value=FORMAT_YES name="FORMAT_YES">Non-Standard</OPTION> 
<OPTION id=FORMAT_NO selected value=FORMAT_NO name="FORMAT_NO">Standard</OPTION></SELECT> </DIV> 

Кто-нибудь знает, как вызвать JavaScript, чтобы иметь остальную часть формы будет обновляться путем выбора я пытаюсь сделать? Или, возможно, это совершенно другая проблема, с которой я здесь сталкиваюсь?

ответ

0

Вы можете попробовать использовать метод fireevent для списка и попробовать один раз?

например код:

IEDoc.getElementById("PROGRAMME-select").selectedindex = 2 

IEDoc.getElementById("PROGRAMME-select").fireevent "Onchange" 
+0

I Пробовал это, но ничего не происходит. Выпадающее меню не изменяется. Я видел кого-то на stackoverflow.com [ссылка] (http://stackoverflow.com/questions/26649727/vba-html-jquery-chosen-autocomplete-select-in-a-list/32355026#32355026), у кого такая же проблема и решил это следующим образом: «IEDoc.parentWindow.execScript (« jQuery ('# type »). val (' 2 '); jQuery (' # type '). trigger (' selected: updated ');") 'But Я не знаю, как я могу изменить это, чтобы помочь моему делу на самом деле. – maria

+0

просто используйте эту строку кода после кода, где u задано значение, IEDoc.getElementById («PROGRAM-select»). Fireevent «Onchange» – Annette

+0

Я уже пробовал, но ничего не происходит. Индекс не изменяется, независимо от того, для чего я его установил. Возможно ли, что в HTML нет события «onchange»? – maria

0

После формы изменения имеет новый HTML в документе. Вместо использования IEDoc, который вы, вероятно, задали перед изменением, просто используйте ie.document.getElementById («NEW NAME ЗДЕСЬ»). Selectedindex = 1

(Предполагается, что вы задали свой экземпляр msie, т.е. любая переменная, которую вы дали этому экземпляру, и документ всегда будет давать вам самую последнюю версию после любых изменений в JavaScript. Идентификаторы формы могли бы быть изменены также, чтобы вы могли попробовать перечислить все ID в форме снова, просто чтобы увидеть.)

Смежные вопросы