2015-07-20 109 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