2015-07-20 77 views
1

如何在一个HTML页面中使用VBScript将列表框的值设置为某个已经存在的值,比如text3使用VBScript修改HTML列表框值

这是我的HTML:

<!DOCTYPE html> 
<html> 
<body> 
    <select name="sometext" id="dsds"> 
     <option value="1">text1</option> 
     <option value="2">text2</option> 
     <option value="3">text3</option> 
     <option value="4">text4</option> 
     <option value="5">text5</option> 
    </select> 
</body> 
</html> 

,这是我的VBScript代码:

Dim ie 
Set ie = WScript.CreateObject("InternetExplorer.Application") 
ie.navigate("hey12.html") 
ie.width = 900 
ie.height = 600 
ie.Visible = 1 
WScript.sleep(5000) 
Set Helem1 = IE.document.getElementByID("dsds") 
Helem1.value = "text3" 

使用上面的代码,我不能修改列表框中的值或文本。

回答

1

您可以使用<select>元素的SelectedIndex属性进行索引。这是从零开始的。由于text3是第三个选项,使用2值:

Set Helem1 = IE.document.getElementByID("dsds") 
Helem1.SelectedIndex = 2 

或者你也可以检查每个<option>元素的文本值,当你找到你要找的人,其Selected属性设置为True

Set Helem1 = IE.document.getElementByID("dsds") 

For Each o In Helem1.Options 
    If o.InnerText = "text3" Then o.Selected = True 
Next 
+0

谢谢..它的工作原理。我在这里发布之前花了很多时间。您能否指出使用vbscript和IE的文档链接。 – user3436156

+0

如果您对操作DOM感兴趣,请参阅MSHTML文档[此处](https://msdn.microsoft.com/en-us/library/hh801967(v = vs.85).aspx)。它列出了可通过VBScript/JavaScript编写脚本的对象/事件。看看[这里](https://msdn.microsoft.com/en-us/library/hh772960(v = vs.85).aspx)。 – Bond

+0

谢谢,这正是我想要的。 – user3436156

1

要设置/更改.value的 - 或的.text - 期权的(而不是只选择它),使用

Helem1(2).value = "newValue" 
Helem1(2).text = "newText" 

(解决从Bond的答案中盗取的物品的方法)

+0

嗨Ekkehard,我刚刚尝试了上面的代码..这没有选择列表框中的新项目,也是当我试图在运行代码后看到页面的源代码html时,它和以前完全一样。你能解释一下上面的代码是做什么的? – user3436156

+0

@ user3436156 - 该代码执行您写下**的问题**要求:它更改了select的第三个选项的.text/.value。我没有试图回答'我如何选择一个选项?'因为我不是一个心灵感应器(比如邦德)。 –

+0

感谢Ekkehard的帮助。 – user3436156