在加载时设置下拉框的值

时间:2010-11-02 03:41:55

标签: vb.net combobox

如果查看html的源代码,可以看到组合框有一个id。但是当我在vb.net中运行页面上所有hte元素的循环时,它会显示为空白而不是明确定义的id。我认为它与javascript有关,给它一个动态id。无论如何。在页面加载到webbrowser对象后,我需要设置此框。请帮忙。它让我疯狂!

<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”,“March”) - 剂量工作

    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 :(得分:0)

我记得,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>

你的第一个选项标签中有一个迷路双引号,这可能是问题的一部分。但修复它不允许vbscript在我的浏览器中工作。自90年代中期以来我没有完成VBscript所以我切换到了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>