Что нового

Принять изменения в INPUT

shines2

Новичок
Сообщения
2
Репутация
0
Задача: найти последний INPUT в $oIE и заменить его значение на $nNumPage
Мой код:
Код:
Func SetPageNumber($oIE, $nNumPage)
  $oInputs = _IETagNameGetCollection($oIE, "input")
  $nInputQuantity = @extended
  $nInputCount = 0
   
   
  For $oInput In $oInputs
	  $nInputCount = $nInputCount+1
	  If $nInputCount=$nInputQuantity Then	;Последний
		 _IEFormElementSetValue($oInput, $nNumPage, 1)
		 
	  EndIf
 Next
EndFunc

Все работает, значение меняется. Но, если значение менять в форме вручную, то после нажатия [Enter] страница переформировывается в соответствии с введенным значением. А при программном изменении страница не переформировывается (нажатия [Enter] не происходит). Что можно сделать? Пробовал следующее (не помогло):
Код:
_IEAction($oIE, "focus")
Send('{Enter}')
 _IEAction($oInput, "focus")
$hwnd = _IEPropertyGet($oIE, "hwnd")
ControlSend($hwnd, "", "[CLASS:Internet Explorer_Server; INSTANCE:1]", "{Enter}")
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Если ты привёл второй кусок кода так как пытался его использовать, то получается что ты пытался отправить пустую форму. На этом сайте руками на пустой форме Enter нажимается?
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
shines2
что за сайт? наверняка за обновление отвечает скрипт
 
Автор
S

shines2

Новичок
Сообщения
2
Репутация
0
Возможно, что скрипт. Как бы его запустить. Сайт - некий корпоративный портал. Там выводятся списки неких кодов, которые надо собрать в единый список, а то их по несколько тысяч бывает, а выводятся они страницами по 10 штук. Фрагмент html-кода, отвечающий за навигацию:
Код:
<TABLE style="TABLE-LAYOUT: auto" class=ui-pg-table border=0 cellSpacing=0 cellPadding=0>
<TBODY>
<TR>
<TD id=first_Pagination class="ui-pg-button ui-corner-all ui-state-disabled" jQuery17107355953809333036="23"><SPAN class="ui-icon ui-icon-seek-first"></SPAN></TD>
<TD id=prev_Pagination class="ui-pg-button ui-corner-all ui-state-disabled" jQuery17107355953809333036="24"><SPAN class="ui-icon ui-icon-seek-prev"></SPAN></TD>
<TD style="WIDTH: 4px" class="ui-pg-button ui-state-disabled" jQuery17107355953809333036="25"><SPAN class=ui-separator></SPAN></TD>
<TD dir=ltr>Стр. <INPUT class=ui-pg-input role=textbox value=1 maxLength=7 size=2 type=text jQuery17107355953809333036="29"> из <SPAN id=sp_1_Pagination>2</SPAN></TD>
<TD style="WIDTH: 4px" class="ui-pg-button ui-state-disabled" jQuery17107355953809333036="26"><SPAN class=ui-separator></SPAN></TD>
<TD id=next_Pagination class="ui-pg-button ui-corner-all" jQuery17107355953809333036="27"><SPAN class="ui-icon ui-icon-seek-next"></SPAN></TD>
<TD id=last_Pagination class="ui-pg-button ui-corner-all" jQuery17107355953809333036="28"><SPAN class="ui-icon ui-icon-seek-end"></SPAN></TD>
<TD dir=ltr><SELECT class=ui-pg-selbox role=listbox jQuery17107355953809333036="22"><OPTION role=option selected value=10>10</OPTION><OPTION role=option value=20>20</OPTION><OPTION role=option value=30>30</OPTION></SELECT></TD>
</TR></TBODY></TABLE>
В принципе, вслед за ячейкой с input следует ячейка с id=next_Pagination. Визуально в этой ячейке находится картинка, при нажатии на которую, происходит переход на следующую страницу. Но у меня никак не получается получить объект этой ячейки, поэтому и программно кликнуть на него не получается. Кстати, таким же макаром, как я меняю значение INPUT, я пробовал сменить значение SELECT. И в этом случае происходит перерасчет страницы на 10 строк/20 строк/30 строк:
Код:
Func SetMaxLinePerPage($oIE)
   $oSelects = _IETagNameGetCollection($oIE, "select")

   For $oSelect In $oSelects
	  _IEFormElementOptionSelect($oSelect, $oSelect.length-1, 1, 'byIndex')
	  Sleep(1000)
	  ExitLoop
   Next
EndFunc



Добавлено:
Сообщение автоматически объединено:

Но у меня никак не получается получить объект этой ячейки, поэтому и программно кликнуть на него не получается.
Я пытался использовать _IETagNameGetCollection($oIE, "td") и нужного TD в возвращаемой коллекции не было. Сейчас я попробовал сначала найти нужную таблицу, а потом использовать _IETagNameGetCollection($oTable, "td"). В этой коллекции TD, при клике на котором, рисуется следующая страница, есть. Теперь мне не нужен INPUT, с которого я начал свой вопрос - я и так перелистаю все страницы.
Всем спасибо.
 
Верх