如果查看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参考做了一些研究,但结果并没有多大帮助。提前谢谢!
答案 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>