如何使用 JavaScript 从下拉列表中获取选定的值?
我尝试了以下方法,但它们都返回选定的索引而不是值:
var e = document.getElementById(“ddlViewBy”); function show(){ var as = document.forms[0].ddlViewBy.value; var strUser = e.options[e.selectedIndex].value; console.log(as, strUser); } e.οnchange=显示;节目(); test1 test2 测试3
huntsbot.com – 程序员副业首选,一站式外包任务、远程工作、创意产品分享订阅平台。
如果您有一个如下所示的选择元素:
test1
test2
test3
运行此代码:
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
var strUser = e.options[e.selectedIndex].value; 为什么不只是var strUser = e.value ?
@TheRedPea-也许是因为在编写此答案时,有可能(无论多么遥远)需要适应旧版本的 Netscape Navigator,因此使用了一种同样古老的方法来访问单个选择的值。但我只是猜测。 ;-)
我是这样使用的:var e = document.getElementById("ddlViewBy").value;
应该是 e.target.options[e.target.selectedIndex].text 不知道为什么这里的所有答案都错了..
@OZZIE - 查看 OP 问题中以 var e 开头的赋值语句。虽然 e(或 event)表示 eventObject 是惯例,但此处 OP 使用它来表示元素。
huntsbot.com聚合了超过10+全球外包任务平台的外包需求,寻找外包任务与机会变的简单与高效。
纯 JavaScript:
var e = document.getElementById("elementId");
var value = e.options[e.selectedIndex].value;
var text = e.options[e.selectedIndex].text;
jQuery:
$("#elementId :selected").text();
$("#elementId").val();
AngularJS:(http://jsfiddle.net/qk5wwyct):
Text: {{selectItem.text}}
Value: {{selectItem.value}}
$scope.items = [{
value: 'item_1_id',
text: 'Item 1'
}, {
value: 'item_2_id',
text: 'Item 2'
}];
我一定是做错了什么,因为当我尝试这个时,我会在下拉菜单中取回每个选项的文本。
这确实以不同的方式对我有用。 $("#ddlViewBy :selected").val() 不是没有选中
element.options[e.selectedIndex].value 必须是 element.options[element.selectedIndex].value
仍然有用 - 感谢您写出变体/语言!现在,如果我只知道 Office JS API Dropdown 的等效项...
它在 jQuery 中也适用于我,只需放置 $("#elementId").val() 而无需提及 selected
huntsbot.com聚合了超过10+全球外包任务平台的外包需求,寻找外包任务与机会变的简单与高效。
var strUser = e.options[e.selectedIndex].value;
这是正确的,应该给你价值。是你要的文字吗?
var strUser = e.options[e.selectedIndex].text;
所以你对术语很清楚:
Hello World
此选项具有:
索引 = 0
价值=你好
文本 = 你好世界
我认为 javascript 中的“.value”应该为我返回值,但只有“.text”会返回 asp.net 中的 .SelectedValue 返回的值。感谢您提供的示例!
是的 - 使选项的价值与它的价值相同。更简单 - 上面的人需要编写更多代码来弥补他最初的模糊性。
应该是 e.target.options[e.target.selectedIndex].text 不知道为什么这里的所有答案都错了..
huntsbot.com聚合了超过10+全球外包任务平台的外包需求,寻找外包任务与机会变的简单与高效。
以下代码展示了与使用 JavaScript 从输入/选择字段中获取/放置值相关的各种示例。
Source Link
工作Javascript & jQuery Demo
https://i.stack.imgur.com/8LJas.jpg
https://i.stack.imgur.com/GnfKD.jpg
Select
text1
text2
text3
TextBox1
TextBox2
以下脚本获取所选选项的值并将其放入文本框 1
function run() {
document.getElementById("srt").value = document.getElementById("Ultra").value;
以下脚本从文本框 2 中获取一个值并使用其值发出警报
function up() {
var dop = document.getElementById("srt").value;
alert(dop);
以下脚本正在从函数调用函数
function up() {
var dop = document.getElementById("srt").value;
pop(dop);
function pop(val) {
alert(val);
onchange=run(this.value) 或 (this.text) 可能更有益。
HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com
var selectedValue = document.getElementById("ddlViewBy").value;
这是最简单的解决方案,至少对于现代浏览器而言。另见W3Schools。
HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com
如果您曾经遇到过纯粹为 Internet Explorer 编写的代码,您可能会看到:
var e = document.getElementById("ddlViewBy");
var strUser = e.options(e.selectedIndex).value;
在 Firefox 等中运行上面的代码会给你一个“不是函数”的错误,因为 Internet Explorer 允许你使用 () 而不是 []:
var e = document.getElementById("ddlViewBy");
var strUser = e.options[e.selectedIndex].value;
正确的方法是使用方括号。
huntsbot.com全球7大洲远程工作机会,探索不一样的工作方式
Select
text1
text2
text3
当您从元素内部访问它时,任何输入/表单字段都可以使用“this”关键字。这消除了在 dom 树中定位表单然后在表单中定位该元素的需要。
huntsbot.com – 程序员副业首选,一站式外包任务、远程工作、创意产品分享订阅平台。
有两种方法可以使用 JavaScript 或 jQuery 完成此操作。
JavaScript:
var getValue = document.getElementById('ddlViewBy').selectedOptions[0].value;
alert (getValue);
var ddlViewBy = document.getElementById('ddlViewBy');
var value = ddlViewBy.options[ddlViewBy.selectedIndex].value;
var text = ddlViewBy.options[ddlViewBy.selectedIndex].text;
alert (value);
alert (text);
jQuery:
$("#ddlViewBy:selected").text();
$("#ddlViewBy").val();
工作得很好。非常感谢。
与HuntsBot一起,探索全球自由职业机会–huntsbot.com
初学者可能希望从带有 NAME 属性而不是 ID 属性的选择中访问值。我们知道所有表单元素都需要名称,甚至在它们获得 id 之前。
因此,我添加了 getElementsByName() 解决方案,仅供新开发人员查看。
注意。表单元素的名称必须是唯一的,这样您的表单才能在发布后使用,但 DOM 可以允许多个元素共享一个名称。因此,如果可以,请考虑向表单添加 ID,或者使用表单元素名称 my_nth_select_named_x 和 my_nth_text_input_named_y 明确。
使用 getElementsByName 的示例:
var e = document.getElementsByName("my_select_with_name_ddlViewBy")[0];
var strUser = e.options[e.selectedIndex].value;
如果 my_select_with_name_ddlViewBy 是类似 my_select_with_name_ddlViewBy[] 的数组,则不起作用
打造属于自己的副业,开启自由职业之旅,从huntsbot.com开始!
$(‘#SelectBoxId option:selected’).text();获取列出的文本
$(‘#SelectBoxId’).val();用于获取选定的索引值
这使用 jQuery,它不回答 OP 的问题。
保持自己快人一步,享受全网独家提供的一站式外包任务、远程工作、创意产品订阅服务–huntsbot.com
我不知道我是不是没有正确回答问题的人,但这对我有用:在您的 HTML 中使用 onchange() 事件,例如。
Three
//javascript
function selectNum(){
var strUser = document.getElementById("numberToSelect").value;
这将为您提供每次点击选择下拉列表中的任何值
原文链接:https://www.huntsbot.com/qa/1j0j/get-selected-value-in-dropdown-list-using-javascript?lang=zh_CN&from=csdn
保持自己快人一步,享受全网独家提供的一站式外包任务、远程工作、创意产品订阅服务–huntsbot.com
如何使用 JavaScript 从下拉列表中获取选定的值?我尝试了以下方法,但它们都返回选定的索引而不是值:var e = document.getElementById("ddlViewBy"); function show(){ var as = document.forms[0].ddlViewBy.value; var strUser = e.options[e.selectedIndex].value; console.log(as, strUser); } e.onchange=显示
<select id="test" name="">
<option value="1">text1</option>
<option value="2">text2</option>
</select>
code:
一:javas...
有两种方法可以获取下拉列表的value值下拉列表的value值就是选中项的value值,若没有选中,则默认为第一项。
$("selectId").val();
$("selectId option:selected").val();两种方法都可以,但是有时候受框架影响,可能第一种方法不可用,推荐第二种,“==”和“equal”也是同样的道理。
转自:http://www.cnblogs.com/davidgu/archive/2009/07/10/1520562.html
在html中标准下拉框很常用,经常有这样的需求在下拉框改变的时候我们需要获取它的文本或值。
初学JS的朋友经常会把它的值和文本搞错,把两者混为一谈。
有的时候还会歪打正着,因为经常我们的值就是我们的文本,但是实际它们是不同的东西。
下面我们来举个例子。
下拉框一般都是单选的, 所以直接通过document.querySelector('select').value就可以知道选中的值了.
如果只是想判断是否有选中的话还可以通过document.querySelector('select').selectedIndex, 这个属性是一个数字,表明第一个被选中的值的索引, 所以如果返回为-1说明没有option被选中.
如果select添加了multiple属性, 那么可以通过Shift或Ctrl像操作文件一样操作select的选项来多选.
获取多选下拉框
如果你有一个 JavaScript 列表(也被称为数组),其中的每个元素都是一个字典对象,并且想要获取每个字典对象中特定键的值,你可以使用以下代码:
```javascript
let list = [{a: 1, b: 2}, {a: 3, b: 4}, {a: 5, b: 6}];
let valuesList = list.map(obj => obj.a);
console.log(valuesList); // [1, 3, 5]
在这个例子中,我们创建了一个包含三个字典对象的列表。我们使用 `map()` 方法遍历列表中的每个字典对象,并使用箭头函数语法获取每个字典对象中键为 `"a"` 的值。最后,我们将结果存储在一个列表中,并使用 `console.log()` 方法将列表打印到控制台。