天道酬勤,学无止境

如何在 html select 元素中获取所选项目的文本?(How can I get the text of the selected item in an html select element?)

问题

我需要 html 选择元素中所选项目的值。 这里接受的答案建议这样做:

Request.Form["testSelect"]

所以就我而言,我有这个 html select 元素:

<select name="subcategory" color="<%=Session("TextColor")%>" style="font: 8pt arial" onchange="UpdateFlag=true;">
    <% if Not IsNewBusiness then %>
      <option <% If subcategory = "0" Then Response.Write(" selected")%> value="0">Existing
      <option <% If subcategory = "1" Then Response.Write(" selected")%> value="1">Organic Growth
    <% else %>
      <option <% If subcategory = "0" Then Response.Write(" selected")%> value="0">New
      <option <% If subcategory = "1" Then Response.Write(" selected")%> value="1">Assumed
    <% end if %>
</select>

然而,设计时编译器对此并不满意,从“Request.Form”下方的波浪线和“subcategory”的白色可以看出:

我需要做什么才能从 VB.NET 中获取该值?

更新

当我尝试了 Sailor 在他的回答中建议的内容(在 html select 元素中添加了“runat =“server””)时,我得到了:

Server Error in '/EMS/customerreportingnet' Application.
--------------------------------------------------------------------------------

Parser Error 
Description: An error occurred during the parsing of a resource required to service this request. Please review the following 

specific parse error details and modify your source file appropriately. 

Parser Error Message: Server tags cannot contain <% ... %> constructs.

Source Error:    

Line 744:                                        </td>
Line 745:                                        <td nowrap align="left" valign="top">
Line 746:                                            <select runat="server" name="subcategory" color="<%=Session

("TextColor")%>" style="font: 8pt arial" onchange="UpdateFlag=true;">
Line 747:                                                <% If Not IsNewBusiness Then%>
Line 748:                                                <option <% If Subcategory = "0" Then Response.Write(" selected")%> 

value="0">     

Source File: /EMS/customerreportingnet/pages/custmaint_entry.aspx    Line: 746     

--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.5485; ASP.NET Version:2.0.50727.5491

删除它消除了错误。

更新 2

这个:

Subcategory = Request.Form.Item("selectSubcategory")

...正在给我所选项目的索引(例如“0”); 我怎样才能得到实际的文本呢?

更新 3

事实证明,它并没有真正给我所选项目的索引,毕竟——它只是总是给我“0”——无论是选择第一个(0th)还是第二个(1st)选项。

如果我尝试一开始提到的内容,请使用这种代码:

Subcategory = Request.Form["selectSubcategory"]

我收到此错误:

Compilation Error 
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: BC30311: Value of type 'System.Collections.Specialized.NameValueCollection' cannot be converted to 'String'.

Source Error:

Line 90:         CustNo = Request.Form.Item("CustNo")
Line 91:         'Subcategory = Request.Form.Item("selectSubcategory").ToString() '<= question at https://stackoverflow.com/questions/42655000/how-can-i-reference-the-selected-item-in-an-html-select-element-vb-net
Line 92:         Subcategory = Request.Form["selectSubcategory"]
Line 93:         AutoID = Request.Form.Item("AutoID")
Line 94:         ReturnMsg = ""

Source File: C:\Users\cshannon\Source\Workspaces\CSReports\EnhancedMonthlySalesReporting\customerreportingnet\customerreportingnet\pages\custmaint_entry.aspx    Line: 92

这就是为什么我走另一条路线的原因:

Subcategory = Request.Form.Item("selectSubcategory").ToString()

...但这并没有完全削减芥末(总是返回0)。

回答1

确保您的表单标签中有runat="server" 。 否则将其保留在 Select 标签中。

然后尝试使用

Request.Form.Item("Subcategory")

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 如何从 Knockout Observable 中获取所选项目的文本?(How can I get the text of a selected item from a Knockout Observable?)
    问题 我可以看到为获取所选项目的文本值而提供的所有 Knockout-ish 方式,但前提是它是由其中一个或两个生成的: 没有值属性或者您为“选项”提供数组 但是,我并没有自己加载选项数组,我只是想观察下拉列表中的所选项目并检查文本表示。 不幸的是,在这种情况下,返回的值始终是所选项目的“值”属性。 我必须对可观察对象执行以下操作: this.selectedText = $("#myId: option:selected).text(); 我相信有一种方法可以让它坚持使用 Knockout。 我只想获取所选项目的文本值,其中我没有提供选择列表的数组并且选择列表保留了值属性。 <option value="2129">SomeText</option> 编辑 为了更具体地理解我为什么要这样做 - 选择项的值是一个 ID - 如果进行了某个选择,我需要能够触发一段代码可见。 不幸的是,我无法绑定到选择(值)的 id,因为它可能与开发不同,但文本将始终相同。 回答1 我认为我们必须绑定到 observable 数组才能在淘汰赛中制作下拉列表可观察文档也没有列出其他内容 http://knockoutjs.com/documentation/options-binding.html
  • 如何获取下拉列表中所选值的文本? [复制](How to get the text of the selected value of a dropdown list? [duplicate])
    问题 这个问题已经在这里有了答案: 8年前关闭。 可能重复: jQuery获取特定的选项标签文本如何使用jQuery获取选择的选择选项的文本? 我有一个下拉列表,我想知道所选项目的文本。 例如: <select> <option value="1">Volvo</option> <option value="2">Saab</option> <option value="3">Mercedes</option> </select> 如果我知道所选的值,如何获得它的文本值? 例如,如果值为1 ,我如何获得Volvo ? 帮助非常感谢。 回答1 您可以使用option:selected获取select元素的option:selected选项,然后使用text()方法: $("select option:selected").text(); 这是一个例子: console.log($("select option:selected").text()); <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <select> <option value="1">Volvo</option> <option value="2" selected="selected"
  • 使用jQuery从下拉列表(选择框)中获取选定的文本(Get selected text from a drop-down list (select box) using jQuery)
    问题 如何从jQuery的下拉列表中获取选定的文本(而不是选定的值)? 回答1 $("#yourdropdownid option:selected").text(); 回答2 试试这个: $("#myselect :selected").text(); 对于ASP.NET下拉列表,可以使用以下选择器: $("[id*='MyDropDownId'] :selected") 回答3 例如,此处发布的答案, $('#yourdropdownid option:selected').text(); 不适用于我,但这确实: $('#yourdropdownid').find('option:selected').text(); 它可能是jQuery的旧版本。 回答4 如果您已经有一个变量中的下拉列表,这对我来说是有效的: $("option:selected", myVar).text() 关于这个问题的其他答案对我有帮助,但是最终jQuery论坛线程$(this +“ option:selected”)。attr(“ rel”)选项在IE中的作用最大。 更新:修复了上面的链接 回答5 这对我有用 $("#dropdownid").change(function() { alert($(this).find("option:selected").text()); })
  • 如何使用jQuery获取select的所有选项?(How to get all options of a select using jQuery?)
    问题 如何通过传递ID来通过jQuery获得select的所有选项? 我只希望获得其价值,而不是文字。 回答1 采用: $("#id option").each(function() { // Add $(this).val() to your list }); .each()| jQuery API文档 回答2 我不了解jQuery,但我确实知道,如果您获得select元素,它将包含一个“ options”对象。 var myOpts = document.getElementById('yourselect').options; alert(myOpts[0].value) //=> Value of the first option 回答3 $.map可能是最有效的方法。 var options = $('#selectBox option'); var values = $.map(options ,function(option) { return option.value; }); 如果只希望选择那些更改选项,则可以将其添加到$('#selectBox option:selected')中。 第一行选择所有复选框,并将其jQuery元素放入变量中。 然后,我们使用jQuery的.map函数将函数应用于该变量的每个元素; 我们要做的就是返回每个元素的值
  • 如何在 Kendo UI 中获取下拉菜单的所选项目的文本?(How to Get Dropdown's Selected Item's text in Kendo UI?)
    问题 我正在使用 Kendo UI 控件。 我想在 jquery 中获取下拉列表的选定文本。 我用过这个语法: $("#ddl").data("kendoDropDownList").text(); 我能够在除 IE 之外的所有浏览器中获取文本。 我不知道为什么这在 IE 中不起作用,请帮助我。 有没有其他方法可以选择 Text ? 回答1 为了获取 DropDownList 的文本值,请使用如下命令: $("#ddl").data("kendoDropDownList").text(); 回答2 对于 DropDownLists,您包括一个 DisplayText 和一个值。 DisplayText 是用户选择的内容,Value 是后端使用的内容。 示例:您有一个存储联系人信息的数据库,您的 DisplayText 将是联系人姓名,而值将是数据库中该特定行的主键 ID 字段。 ID - 1 姓名 - 约翰·史密斯 $("#ddl").data("kendoDropDownList").dataItem().DisplayText = John Smith $("#ddl").data("kendoDropDownList").dataItem().Value = 1 这就是我想要做的,我希望这也是您一直在寻找的答案。 回答3 当在选择事件中从下拉列表中选择一个值时,所选值可用如下
  • 如何获取可选jquery元素的innerHTML?(How to get the innerHTML of selectable jquery element?)
    问题 我有一个 php 生成的列表,其列表项可以使用 jquery 可选小部件进行选择。 所有意图和目的的列表是: <ul id="#select-image"> <li class="ui-widget-content">Item 1</li> <li class="ui-widget-content">Item 2</li> <li class="ui-widget-content">Item 3</li> <li class="ui-widget-content">Item 4</li> <li class="ui-widget-content">Item 5</li> <li class="ui-widget-content">Item 6</li> <li class="ui-widget-content">Item 7</li> </ul> 并且 jQuery 可选声明为: <script> $(function() { $("#select-image").selectable({ selected: function( event, ui ) { var $variable = $('.ui-selected').innerHTML; console.log($variable); } }); }); </script> 选择列表项后会发生一个事件
  • 如何在javascript中获取datalist中所选项目的值?(How to get the value of selected item inside datalist in javascript?)
    问题 我的列表是通过 php 生成的: <input name="txt_name" list="emp_names" autocomplete="off" id="txt_name" class="textbox" onchange="getID(emp_names.text);"/> <datalist id="emp_names"> <?php $host = "localhost"; $user = "root"; $pass = "mark"; $db = "payrolldb"; $cons = mysql_connect($host,$user,$pass); mysql_select_db($db,$cons); //query start $query = "SELECT ID_Employee, CONCAT(LastName,', ',FirstName) AS Name, Department FROM tbl_employeeInfo;"; $result = mysql_query($query); while ($row = mysql_fetch_array($result)) { echo "<option value='".$row['Name']."'>".$row['ID_Employee']."</option>\n"; } ?> <
  • 使用JavaScript在下拉列表中获取选定的值(Get selected value in dropdown list using JavaScript)
    问题 如何使用JavaScript从下拉列表中获取选定的值? 我尝试了下面的方法,但是它们都返回选择的索引而不是值: var as = document.form1.ddlViewBy.value; var e = document.getElementById("ddlViewBy"); var strUser = e.options[e.selectedIndex].value; 回答1 如果您具有如下所示的select元素: <select id="ddlViewBy"> <option value="1">test1</option> <option value="2" selected="selected">test2</option> <option value="3">test3</option> </select> 运行此代码: var e = document.getElementById("ddlViewBy"); var strUser = e.value; 将strUser设为2 。 如果您真正想要的是test2 ,请执行以下操作: var e = document.getElementById("ddlViewBy"); var strUser = e.options[e.selectedIndex].text; 这将使strUser成为test2 回答2
  • Silverlight - 如何在组合框中获取所选项目的文本(Silverlight - how do I get the text of the selected item in a combobox)
    问题 给大家一个简单的... 我是 Silverlight 的新手,确实缺少像 DataTables 之类的东西。 我目前还在苦苦挣扎的是如何获取我的组合框当前所选项目的文本。 在winforms中我会这样做: ComboBox myCombo = new ComboBox....... string selected = myCombo.Text; 我正在努力如何获取这些信息。 回答1 组合框的选定项目是当前持有的任何类型的项目。 因此,如果您将绑定设置为字符串集合,则所选项目将是一个字符串: string mySelectedValue = ((string)MyComboBox.SelectedItem); 如果它是一个更复杂的对象,您将需要强制转换并使用预期的对象。 如果您有使用列表框项类的 XAML,例如: <ComboBox x:Name="MyComboBox"> <ComboBox.Items> <ComboBoxItem> <TextBlock Text="Hello World"/> </ComboBoxItem> </ComboBox.Items> </ComboBox> 然后您将像这样访问所选项目: string mySelectedValue = ((TextBlock)((ComboBoxItem)MyComboBox.SelectedItem)
  • Bootstrap Dropdown 获取所选项目的值(Bootstrap Dropdown get value of selected item)
    问题 使用 Bootstrap 下拉切换按钮有什么方法可以显示刚刚选择的值吗? <form action="/output/" name="InputCacheCheck" method="post"> {% csrf_token %} <div class="input-prepend input-append"> <div class="btn-group"> <button class="btn dropdown-toggle" name="recordinput" data-toggle="dropdown"> Record <span class="caret"></span> </button> <ul class="dropdown-menu"> <li><a href="#">A</a></li> <li><a href="#">CNAME</a></li> <li><a href="#">MX</a></li> <li><a href="#">PTR</a></li> </ul> <input class=".input-large" name="hostnameinput" id="appendedInputButton" type="text"> <button class="btn" type="submit">Lookup</button> </div>
  • 如何在自动完成中获取所选项目的价值(how to get value of selected item in autocomplete)
    问题 我在这里有一个来自http://jqueryui.com/autocomplete/的代码,它的确很好,但是我找不到在文本视图中获取所选项目的值的方法,我尝试了类似的方法,但是它不起作用 <script> $(document).ready(function () { $('#tags').change(function () { $('#tagsname').html('You selected: ' + this.value); }).change(); }); </script> <!doctype html> <html lang="en"> <head> <meta charset="utf-8" /> <title>jQuery UI Autocomplete - Default functionality</title> <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"><
  • 使用php获取所选选项的文本[重复](get the text of the selected option using php [duplicate])
    问题 这个问题已经在这里有了答案: 使用PHP从<option>标记获取文本(5个答案) 6年前关闭。 在下面的: <form action="test.php" method="POST"> <select id="test" name="test"> <option value="1">Test One</option> <option value="2">Test Two</option> </select> </form> 在test.php中,我可以得到1或2,如下所示: $result=$_POST['test']; 如何使用php获取所选选项的文本(即“测试一”或“测试二”) 回答1 这不是单独通过PHP可以完成的事情。 PHP脚本只能“查看”发布的信息(发布的selected选项的value )。 您可以使用javascript来更改带有选定option的文本内容的隐藏input字段,并且该字段将包含在$_POST数组中: <form action="test.php" method="POST"> <select id="test" onchange="document.getElementById('text_content').value=this.options[this.selectedIndex].text"> <option value="1"
  • 如何从f:selectItems获取标签和值(How to get both label and value from f:selectItems)
    问题 我正在一个JSF页面上,该页面具有基于List<SelectItem>的下拉List<SelectItem> : <h:selectOneMenu value="#{bean.selectedItem}"> <f:selectItems value="#{bean.availableItems}" /> </h:selectOneMenu> 我需要获得当前所选项目的两个值和标签。 现在,我只获得价值。 我也如何获得标签? 回答1 你不能这就是HTML的工作方式。 您知道,JSF是HTML代码生成器。 JSF <h:selectOneMenu>生成HTML <select><option> 。 HTML <select>元素将仅发送所选<option>元素的value属性。 它不会发送标签。 但这不是一个大问题。 您即已经在#{bean.availableItems}内部的服务器端知道了值和标签。 您需要做的就是获取关联的标签,即按值作为键来获取它。 我建议把它做成一个Map ,然后也可以在f:selectItems 。 基本的启动示例: public class Bean { private String selectedItem; // +getter +setter private Map<String, String> availableItems; //
  • 如何使用 BeautifulSoup 获取选项文本(How to get the option text using BeautifulSoup)
    问题 我想使用 BeautifulSoup 获取以下 html 中的选项文本。 例如:我想得到 2002/12 、 2003/12 等。 <select id="start_dateid"> <option value="0">2002/12</option> <option value="1">2003/12</option> <option value="2">2004/12</option> <option value="3">2005/12</option> <option value="4">2006/12</option> <option value="5" selected="">2007/12</option> <option value="6">2008/12</option> <option value="7">2009/12</option> <option value="8">2010/12</option> <option value="9">2011/12</option> </select> 获取内容的最佳方式是什么? 现在我正在使用以下代码,但我不知道如何为此使用漂亮的汤。 如果 html 文件中选择的区域不止一个,结果将不正确。 这是我到目前为止所拥有的: import urllib2 from bs4 import BeautifulSoup
  • 如何获取 Datagridview Combobox 所选项目的文本?(How to get the TEXT of Datagridview Combobox selected item?)
    问题 如何获取DataGridView内的组合框选定项文本? 我尝试使用以下代码: dataGridView1.Rows[1].Cells[1].Value.ToString() 但是,这给出了与此单元格关联的值,而不是组合框选定项文本。 我也试过这个: DataGridViewComboBoxCell cell = dataGridView1[1,1] as DataGridViewComboBoxCell; string value = cell.Value.ToString(); 但是,这也没有帮助。 我会很感激你的帮助。 提前致谢! 编辑: 假设我们有一个组合框,文本为No和Yes ,值分别为 0 和 1。 当组合框更改时,我想在这里得到文本Yes或No 。 但我得到的是使用上述代码的值 0/1。 希望这能让事情变得清楚。 更新: 好的,所以我一直在研究这个问题,经过大量努力并在我的同事的帮助下,我已经能够解决问题并获得所需的解决方案: 这是解决方案: string SelectedText = Convert.ToString(dataGridView1.Rows[0].Cells[1].FormattedValue.ToString()); 回答1 要在 DataGridView 中获取组合框的选定值和选定文本,请尝试以下代码 string SelectedText =
  • 从选择控件html复制所选项目的文本(Copy selected item's text from select control html)
    问题 我有一个带有预定义值的选择控件,我希望我的用户能够使用CTRL + C复制所选项目的文本 我不希望他们能够更改项目的文本(只需使用鼠标/键盘选择它) 这是一个显示问题的小提琴(我无法选择所选项目的文本) http://jsfiddle.net/5C3Q9/1/ <select> <option value="orange">Orange</option> <option value="blue">Blue</option> <option value="red">Red</option> <option value="white">White</option> </select> 没有JS我可以做到吗? 如果不是,我该怎么用jQuery呢? 回答1 这是一种模仿行为的方法,它带有一些定位魔术和jQuery。 该代码仅在Chrome上进行了测试,因此可能需要进行一些调整才能在所有浏览器中正常显示。 另请参阅页面底部有关IE7的注释 http://jsfiddle.net/FvFVJ/ html很简单。 只需在您的选择旁边添加一个input字段,然后将它们都包装在div中即可。 您可以将属性readonly添加到输入字段中,以根据需要禁用编辑 .wrap { position: relative; border: 1px solid #ccc; height: 21px
  • 如何在不提交 Apex 5 的情况下从页面中获取所选项目的值?(How do I get the value of a select item from a page without submitting in Apex 5?)
    问题 我希望用户在选择框中做出选择,然后在等待选择框更改的动态操作中读取选择的选择框值 回答1 创建一个在“更改”时触发的动态操作。 作为一个真正的行动: 动作:“设置值” 设置类型:“JavaScript 表达式” Javascript 表达式: apex.item(this.triggeringElement).getValue() 在“受影响的元素”下选择要设置值的项目 这将获取触发更改事件的元素的值,并将其设置为您选择的受影响元素。 但请注意:选择列表的值将是基础返回值(例如 ID),而不是显示值。
  • jQuery获取特定的选项标签文本(jQuery get specific option tag text)
    问题 好吧,说我有这个: <select id='list'> <option value='1'>Option A</option> <option value='2'>Option B</option> <option value='3'>Option C</option> </select> 如果我想获得值“ 2”时选择“选项B”,选择器会是什么样? 请注意,这不是在询问如何获取选定的文本值,而是询问其中的任何一个(取决于是否选中),具体取决于value属性。 我试过了: $("#list[value='2']").text(); 但这是行不通的。 回答1 它正在寻找一个id list的元素,该元素的属性value等于2 。 您想要的是list的option子项: $("#list option[value='2']").text() 回答2 如果您想获得值为2的选项,请使用 $("#list option[value='2']").text(); 如果您想获取当前选中的任何一个选项,请使用 $("#list option:selected").text(); 回答3 这对我来说非常有效,我正在寻找一种使用MySQL生成的选项发送两个不同值的方法,以下内容是通用且动态的: $(this).find("option:selected").text(); 如评论之一所述。
  • 如何使用jQuery获取选择选项的标签?(How to get label of select option with jQuery?)
    问题 <select> <option value="test">label </option> </select> 可以通过$select.val()检索该值。 label呢? 有没有可以在IE6中使用的解决方案? 回答1 试试这个: $('select option:selected').text(); 回答2 嗨,首先给一个ID作为选择 <select id=theid> <option value="test">label </option> </select> 那么您可以像这样调用所选标签: jQuery('#theid option:selected').text() 回答3 供参考,在选项标签上还有一个辅助label属性: //returns "GET THIS" when option is selected $('#selecter :selected').attr('label'); Html <select id="selecter"> <option value="test" label="GET THIS"> Option (also called label)</option> </select> 回答4 要在下拉菜单中获得特定选项的标签,您可以使用此功能- $('.class_of_dropdown > option[value='value_to
  • 如何获取列表框中所选项目的索引?(How to get the index of the selected item in a list box?)
    问题 我想在 Google Apps 脚本列表框中获取所选项目的索引,而不是所选项目本身。 到目前为止,我看到的所有示例都创建了一个服务器处理程序,通过它获取列表框的值 var list1Value = e.parameter.list1; 我想得到索引,所以我可以索引到一个数组中。 我尝试使用此解决方案 http://productforums.google.com/forum/#!category-topic/apps-script/services/vXa57-9T6E4 但我的脚本抱怨无法识别 indexOf var currentmonth = months.indexOf(e.parameter.list1); 任何人都对如何获取索引有一个好主意? 顺便说一下,这是一个在站点中运行的谷歌应用程序脚本,而不是在电子表格中运行,如果这有所不同的话。 回答1 另一个答案没有多大意义,因为 Google Apps 脚本是在 Google 的服务器上执行的,而不是在您的浏览器中执行,并且indexOf()在 GAS 中得到了很好的识别。 您应该使用一个包含 listBox 元素的数组,然后使用listArray.indexOf(listelement); 您将获得所选项目的索引。 例子 : //in the UI construction var ItemlistArray =