我有一个问题,如何更改HTML输入值?
<select name="sys_lenght" aria-controls="systable" class>
<option value="20">Value 1</option>
<option value="40">Value 2</option>
<option value="80">Value 3</option>
</select>
我使用了这段代码
For Each Elementz In WebBrowser1.Document.GetElementsByTagName("select")
If Elementz.Name = "sys_lenght" Then
Elementz.setAttribute("value", "80")
End If
Next
但它不会改变输入值,只会改变文本“Value 3”。 我怎么解决这个问题?感谢
答案 0 :(得分:2)
sys_lenght
的值表示选择了具有指定值的选项。因此,如果您将sys_lenght.value
设置为"80"
,则会选择Value 3
。
要更改 当前选择的选项 的value
,您必须首先获得对此的引用。您可以通过获取sys_lenght
的{{3}}来获取,然后从该索引中获取特定项目。
For Each Elementz In WebBrowser1.Document.GetElementsByTagName("select")
If Elementz.Name = "sys_lenght" Then
'Get the index of the selected option.
Dim SelectedIndex As Integer = Integer.Parse(Elementz.GetAttribute("selectedIndex"))
If SelectedIndex >= 0 Then
'Get the option element from the resulting index.
Dim SelectedOption As HtmlElement = Elementz.Children(SelectedIndex)
SelectedOption.setAttribute("value", "80")
Else 'No option selected.
MessageBox.Show("No option selected!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Exit For 'We found what we were looking for; stop looping.
End If
Next
答案 1 :(得分:0)
首先你必须了解html如何打开和关闭标签,你忘了关闭html选择选项打开标签我的意思是最后一个greter sign&gt;然后使用javascript查询在选项示例中找到值
WebControl1.ExecuteJavascript('document.querySelector('option [value='your value']').selected=true;")
希望得到它的帮助吗?