从具有变量名称的下拉菜单中的选择中获取值

时间:2015-12-11 09:44:07

标签: vbscript hta dropdownbox

我创建了一个HTA页面,以获取从Active Directory过滤的工作站的状态。 目前,我添加了按钮,为具有旁边按钮的工作站执行特定操作。

由于我正在添加越来越多的功能,我想使用下拉框。 具有工作站的列表的大小可以根据用户的输入而变化,因此我在下拉框中给出了恶意的名称。

我现在遇到的问题是我无法检索VBScript代码中的选定值。 如果我把listbox1.value我得到正确的值作为回报。 如果我使用列表框的名称放在这样的变量中,它就不起作用。

strlistbox = "listbox1
listbox1.value

我收到错误。

enter image description here

这是我正在使用的代码的一部分。我总共有760行,所以我不会在这里粘贴所有内容。

VBScript代码:

Sub RunOption(strCPU)
  dim lstname
  dim intNumber

  lstname = "list"&strCPU      'Value of lstname = listWPBED3702885

  msgbox listWPBED3702885.value    'If I try this messagebox, I get the value of the selected option form the dropdown list names "listWPBED3702885"

  intNumber = lstname.value 'This doesn't seem to work

  Select Case list 'intNumber
    Case 1   Do something
    Case 2   Do something
    Case 3   Do something
    Case 4   Do something
  End Select
End Sub

HTML code:

strHTML = strHTML & "<td width='1'><select class='select' size='1' title='list" & _
          objRecordSet.Fields("Name") & "' name='list' onChange=""RunOption('" & _
          objRecordSet.Fields("Name") & "')"">"& _
          "<option value='0' selected>Options...</option>" & _
          "<option value='1'>C:\ Drive</option>" & _
          "<option value='2'>Computer Management</option>" & _ 
          "<option value='3'>Event Viewer</option>" & _
          "<option value='4'>MAC Address</option>" & _
          "</select></td>"

1 个答案:

答案 0 :(得分:4)

您无法将变量设置为字符串,并期望该字符串的行为类似于HTML代码的元素。您需要获取名称或ID引用的元素。通常的方法是使用这样的唯一ID定义要使用的元素:

<select id='uniquevalue' ...>
  ...
</select>

然后通过getElementById()获取该元素:

Set listbox = document.getElementById("uniquevalue")
MsgBox listbox.value