Установите значение выпадающего списка при загрузке - PullRequest
0 голосов
/ 02 ноября 2010

Если вы посмотрите исходный код html, вы увидите, что у выпадающего списка есть идентификатор.Однако, когда я запускаю цикл по всем элементам hte на странице в vb.net, он становится пустым вместо четко определенного идентификатора.Я думаю, что это как-то связано с JavaScript, дающим ему динамический идентификатор.Тем не мение.Мне нужно установить это поле после загрузки страницы в объект веб-браузера.Пожалуйста помоги.Это сводит меня с ума!

<input type="hidden" name="wlw-select_key:{actionForm.dobMonth}OldValue" value="true">"
<select name="wlw-select_key:{actionForm.dobMonth}" id="dobMonth" class="dobMonth"><option" value="">Month</option>
    <option value="01">January</option>
    <option value="02">February</option>
    <option value="03">March</option>
    <option value="04">April</option>
    <option value="05">May</option>
    <option value="06">June</option>
    <option value="07">July</option>
    <option value="08">August</option>
    <option value="09">September</option>
    <option value="10">October</option>
    <option value="11">November</option>
    <option value="12">December</option></select>
<script language="JavaScript" type="text/JavaScript"> 
<!--
netui_tagIdNameMap.dobMonth="wlw-select_key:{actionForm.dobMonth}"
-->
</script>

* Мои попытки исходного кода *** WebBrowser1.Document.GetElementById ("dobMonth"). SetAttribute ("selectedtext", "Март") - не работала

    Dim el As HtmlElement = WebBrowser1.Document.All("wlw-select_key:{actionForm.dobMonth}")
    Dim elCol As HtmlElementCollection = el.GetElementsByTagName("option")
    Dim X As Integer = 0
    For Each op As HtmlElement In elCol
        If op.InnerText = "March?" Then
            el.SetAttribute("selectedIndex", X.ToString())
            Exit For
        End If
        X += 1
    Next
  • , которая не работала либо

Так что у меня действительно нет выбора.Есть идеи.Я провел некоторое исследование по ссылке на javascript, но оказалось не очень полезным.Заранее спасибо!

1 Ответ

0 голосов
/ 02 ноября 2010

насколько я помню, атрибуты name и id ограничены в символах, которые они могут содержать.фигурные скобки, вероятно, не допускаются.не уверен, если это ваша проблема или нет, но это первое, что пришло в голову ... Я посмотрю на это еще немного.

[намного позже ...] Хорошо, это работает, но явзломал кучу вещей, и это может быть не совсем то, что вы ищете:


<select name="dobMonth" id="dobMonth" class="dobMonth"><option value="">Month</option>
    <option value="01">January</option>
    <option value="02">February</option>
    <option value="03">March</option>
    <option value="04">April</option>
    <option value="05">May</option>
    <option value="06">June</option>
    <option value="07">July</option>
    <option value="08">August</option>
    <option value="09">September</option>
    <option value="10">October</option>
    <option value="11">November</option>
    <option value="12">December</option>
</select>
<script type="text/javascript">
document.getElementById("dobMonth").selectedIndex = 3;
</script>

У вас была двойная кавычка в вашем первом теге option, который мог быть частью проблемы,Но исправление не позволило vbscript работать в моем браузере.Я не делал VBscript с середины 90-х, поэтому перешел на javascript.В любом случае, это должно дать вам основу для дальнейшего развития, я надеюсь!

[позже] Этот код установит параметр в виде текстовой строки.Я тестировал под Firefox, он также должен работать в IE:


<script type="text/javascript">
function setSelected(month) {
 var select = document.getElementById("dobMonth");
 var options = select.getElementsByTagName("option");
 for (var i = 0; i < options.length; i++) {
  if (options[i].childNodes[0].nodeValue == month) {
   select.selectedIndex = i;
   break;
  }
 }
}
setSelected("March");
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...