如何使用 request.form 从 ComboBox 中获取文本而不是值?

How to use request.form to get text from a ComboBox instead of value?

我有一个名为 "cboCustomer" 的组合框,带有此选项:

<option value ="CustomerID"> CustomerName </option>


我可以使用 Request.form(cboCustomer) 到 return 组合框的 ,即 CustomerID

但是我怎样才能得到组合框的文本CustomerName

据我了解,问题是标签文本不会 posted 到 post 后的服务器。

1.) 然而,有一个变通办法,post从 ScriptingGuy1 编辑到这里:Workaround

<SCRIPT LANGUAGE="VBScript">

    Sub TestSub
        For Each objOption in OptionChooser.Options
            If objOption.Selected Then
                Msgbox objOption.InnerText
            End If
        Next
    End Sub

</SCRIPT>

<body>

<select size="1" name="OptionChooser" onChange="TestSub">
    <option value="0"></option>
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
    <option value="3">Option 3</option>
</select>

</body>

2.) 在我的特殊情况下,我认为从 Request.Form(cboCustomer) 获取值可能更好,它吐出一个 uniqueID,并使用存储过程调用数据库获取该 CustomerID 对应的 CustomerName。我认为,就我而言,这将使它更具可读性。不幸的是,我认为这可能会降低性能,但由于我在实现上述代码时遇到了问题,这是另一种解决方案,可以考虑是否有其他人对解决方法有疑问。

如果我找到其他解决方案,我会进行编辑,因为两者似乎都不像我想要的那么简单。

到目前为止,我无法理解您将所选选项的文本发送到服务器的要求。但是,还有其他人可以做到这一点:

  • 向窗体添加隐藏控件。
  • 使用JavaScript的"onchange"事件检测变化并触发JavaScript函数。 使用如下脚本:

    var dropDownControl= document.getElementById("dropDownId"); var selectedText = dropDownControl.options[dropDownControl.selectedIndex].text; document.getElementById("hiddenFieldId").value = selectedText;

现在,您将可以从服务器端获取值。

注意:MsgBox 是一个客户端函数,从不在服务器端运行 VB 脚本。