使用 JavaScript 在下拉列表中获取选定值

问:

如何使用 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;
}

这将为您提供每次点击选择下拉列表中的任何值

原文链接:https://www.huntsbot.com/qa/1j0j/get-selected-value-in-dropdown-list-using-javascript?lang=zh_CN&from=csdn

保持自己快人一步,享受全网独家提供的一站式外包任务、远程工作、创意产品订阅服务–huntsbot.com

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值