Что нового

Получить текстовое значение которое выбрано в выпадающем списке

ckret

Новичок
Сообщения
44
Репутация
0
Подскажите пожалуйста, как можно получить текстовое значение, которое выбрано в выпадающем списке.

Код:
<div class="selector_container dropdown_container big" id="container5" style="width: 200px;"><table class="selector_table" cellspacing="0" cellpadding="0">    <tbody><tr>      <td class="selector">        <div class="placeholder_wrap1" style="display: none;">          <div class="placeholder_wrap2">            <div class="placeholder_content" style="color: rgb(0, 0, 0);">Не выбран</div>            <div class="placeholder_cover"></div>          </div>        </div>        <span class="selected_items"></span>        <input class="selector_input selected" style="width: 160px; color: rgb(0, 0, 0);" type="text">        <input name="u_faculty317680813" class="resultField" id="u_faculty317680813" type="hidden" value="398">        <input name="u_faculty317680813_custom" class="customField" id="u_faculty317680813_custom" type="hidden" value="">      </td><td class="selector_dropdown" id="dropdown5" style="width: 26px;"> </td>    </tr>  </tbody></table>  <div class="results_container">    <div class="result_list scroll-outer-border" style="width: 200px; height: auto; bottom: auto; display: none; visibility: visible;"><ul style="visibility: visible; position: relative;"><li class="first" onmousedown="Select.itemMouseDown(5, 0, this)" onmousemove="Select.itemMouseMove(5, 0, this)" val="0">Не выбран</li><li onmousedown="Select.itemMouseDown(5, 1, this)" onmousemove="Select.itemMouseMove(5, 1, this)" val="398">Маркетинга
</li><li onmousedown="Select.itemMouseDown(5, 2, this)" onmousemove="Select.itemMouseMove(5, 2, this)" val="399">Менеджмента
</li><li onmousedown="Select.itemMouseDown(5, 3, this)" onmousemove="Select.itemMouseMove(5, 3, this)" val="400">Финансов и кредита
</li><li onmousedown="Select.itemMouseDown(5, 4, this)" onmousemove="Select.itemMouseMove(5, 4, this)" val="401">Экономики
</li><li class="last " onmousedown="Select.itemMouseDown(5, 5, this)" onmousemove="Select.itemMouseMove(5, 5, this)" val="33934">Рекламы</li></ul></div>    <div class="result_list_shadow" style="width: 199px; margin-top: 139px; display: none;">      <div class="shadow1"></div>      <div class="shadow2"></div>    </div>  </div></div>
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Вот универсальная функция:
Код:
Func _IEVKGetSelection(ByRef $oObj)
	Local $oInput, $oDiv
	If Not IsObj($oObj) Then Return SetError(1, 0, 0)
	$oInput = $oObj.parentNode.getElementsByTagName("input").item(0)
	If Not IsObj($oInput) Then Return SetError(2, 0, 0)
	$sResult = $oInput.value
	If $sResult <> "" Then Return String($sResult)
	$oDiv = $oObj.parentNode.parentNode.parentNode.parentNode.parentNode.getElementsByTagName("div").item(1).getElementsByTagName("div").item(0)
	If Not IsObj($oDiv) Then Return SetError(3, 0, 0)
	$sResult = $oDiv.innerHTML
	If $sResult <> "" Then Return String($sResult)
	$sResult = $oObj.value
	If $sResult <> "" Then Return String($sResult)
	Return ""
EndFunc   ;==>_IEVKGetSelection


Для вашего кода можно так:
Код:
#include <IE.au3>
Global $oIE, $oInput1

;~ $oIE = _IECreate( $URL )
; ...

$oInput1 = _IEGetObjById($oIE, "u_faculty317680813")

ConsoleWrite(_IEVKGetSelection($oInput1) & @CRLF)


Вот ещё пример:
Код:
#include <IE.au3>
Global $oIE, $oInput1, $oInput2, $oInput3

$oIE = _IECreate("http://vk.com/edit")

$oInput1 = _IEGetObjById($oIE, "pedit_bday"); день
$oInput2 = _IEGetObjById($oIE, "pedit_bmonth"); месяц
$oInput3 = _IEGetObjById($oIE, "pedit_byear"); год

ConsoleWrite(StringFormat("%s %s %s\r\n", _IEVKGetSelection($oInput1), _IEVKGetSelection($oInput2), _IEVKGetSelection($oInput3)))
 
Автор
C

ckret

Новичок
Сообщения
44
Репутация
0
Блин, ну спасибо! А то мой метод с HTML и регулярными выражениями очень деревянным оказался :IL_AutoIt_1:
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Не, регулярными выражениями HTML это не очень хорошо :smile:
 
Верх