问:
如何使用 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
答1:
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 使用它来表示元素。
答2:
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(); // The text content of the selected option
$("#elementId").val(); // The value of the selected option
AngularJS:(http://jsfiddle.net/qk5wwyct):
// HTML
Text: {{selectItem.text}}
Value: {{selectItem.value}}
// JavaScript
$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
答3:
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 不知道为什么这里的所有答案都错了..
答4:
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() {
//if (document.getElementById("srt").value != "") {
var dop = document.getElementById("srt").value;
//}
alert(dop);
}
以下脚本正在从函数调用函数
function up() {
var dop = document.getElementById("srt").value;
pop(dop); // Calling function pop
}
function pop(val) {
alert(val);
}?
onchange=run(this.value) 或 (this.text) 可能更有益。
答5:
HuntsBot周刊–不定时分享成功产品案例,学习他们如何成功建立自己的副业–huntsbot.com
var selectedValue = document.getElementById("ddlViewBy").value;
这是最简单的解决方案,至少对于现代浏览器而言。另见W3Schools。
答6:
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;
正确的方法是使用方括号。
答7:
huntsbot.com全球7大洲远程工作机会,探索不一样的工作方式
Select
text1
text2
text3
当您从元素内部访问它时,任何输入/表单字段都可以使用“this”关键字。这消除了在 dom 树中定位表单然后在表单中定位该元素的需要。
答8:
huntsbot.com – 程序员副业首选,一站式外包任务、远程工作、创意产品分享订阅平台。
有两种方法可以使用 JavaScript 或 jQuery 完成此操作。
JavaScript:
var getValue = document.getElementById('ddlViewBy').selectedOptions[0].value;
alert (getValue); // This will output the value selected.
或者
var ddlViewBy = document.getElementById('ddlViewBy');
var value = ddlViewBy.options[ddlViewBy.selectedIndex].value;
var text = ddlViewBy.options[ddlViewBy.selectedIndex].text;
alert (value); // This will output the value selected
alert (text); // This will output the text of the value selected
jQuery:
$("#ddlViewBy:selected").text(); // Text of the selected value
$("#ddlViewBy").val(); // Outputs the value of the ID in 'ddlViewBy'
工作得很好。非常感谢。
答9:
与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[] 的数组,则不起作用
答10:
打造属于自己的副业,开启自由职业之旅,从huntsbot.com开始!
只需使用
$(‘#SelectBoxId option:selected’).text();获取列出的文本
$(‘#SelectBoxId’).val();用于获取选定的索引值
这使用 jQuery,它不回答 OP 的问题。
答11:
保持自己快人一步,享受全网独家提供的一站式外包任务、远程工作、创意产品订阅服务–huntsbot.com
我不知道我是不是没有正确回答问题的人,但这对我有用:在您的 HTML 中使用 onchange() 事件,例如。
One
Two
Three
//javascript
function selectNum(){
var strUser = document.getElementById("numberToSelect").value;
}
这将为您提供每次点击选择下拉列表中的任何值
保持自己快人一步,享受全网独家提供的一站式外包任务、远程工作、创意产品订阅服务–huntsbot.com