2010-11-02 47 views
0

如果您查看html的源代码,您可以看到组合框有一个id。然而,当我通过在vb.net页面上的所有hte元素运行一个循环时,它将作为一个空白而不是明确定义的id。我认为这与JavaScript给它一个动态的ID有关。无论如何。在页面加载到web浏览器对象后,我需要设置此框。请帮忙。这让我疯狂!设置加载下拉框的值

<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> 

* 我的源代码Attemps * ** WebBrowser1.Document.GetElementById( “dobMonth”)的setAttribute( “selectedtext”, “三八”) - dosent工作

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 
  • 没有工作或者

所以我真的很出OPTIO的纳秒。有任何想法吗。我做了一些关于javascript参考的研究,但没有发现太多有用的东西。提前致谢!

+0

上面的代码有一个错误是你检查“March?”而文本仅仅是“三月”而没有问号。 – 2010-11-02 18:18:12

回答

0

我记得,名称和ID属性在它们可以包含的字符中是有限的。大括号可能不被允许。不知道这是否是你的问题,但它是第一个想到的东西......我会再看看它。

[很久以后...] OK,这个工作,但我砍死了一堆的东西,它可能不挺你在找什么:


<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> 
+0

这将工作,但我没有能力修改HTML – Jeff 2010-11-02 06:12:48

+0

你可能不需要修改HTML。当你尝试我提供的JavaScript时会发生什么? – 2010-11-02 07:02:54

+0

我刚刚尝试使用您的原始HTML,并将值设置为4月; 3月份将selectedIndex更改为2。 – 2010-11-02 07:06:02