如何使用 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 脚本。
我有一个名为 "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 脚本。