使用Javascript获取下拉列表中选择的值(显示空)[重复]

Posted

技术标签:

【中文标题】使用Javascript获取下拉列表中选择的值(显示空)[重复]【英文标题】:Get value selected in dropdown list using Javascript (displays null) [duplicate] 【发布时间】:2016-10-14 17:39:31 【问题描述】:

我需要使用 javascript 访问从下拉列表中选择的值。但是每次我得到'null'作为答案时,虽然选择了一个列表项。

我的 html 页面:

<select class="mySelect">
    <option value="st1" selected="selected">Create new Stream</option>
    <option value="st1">Stream 1</option>
    <option value="st2">Stream 2</option>
    <option value="st3">Stream 3</option>
    <option value="st4">Stream 4</option>
</select>

<input type="button" value="show attributes" class="panel-button-attr" onclick="choice()">

当点击上述按钮时,应提醒用户选择的值。所以在我的 Javascript 函数中:

function choice() 

    var choice=document.getElementById("mySelect");
    alert(choice);
    var strUser = choice.options[choice.selectedIndex].text;
    alert(strUser.toString());


在这里,我尝试使用第一个警报来检查是否正确识别了任何选定的列表项。但是,此时它显示为 null 并且 strUsr 行根本不运行。

我知道这实际上是一项微不足道的任务,但我发现很难弄清楚这种不一致。

【问题讨论】:

如果 getElementById 返回 null 表示它没有找到该元素。 您正在尝试访问 ID 为“mySelect”的元素,但您在 HTML 中将“mySelect”作为一个类而不是一个 ID。 @SpeedyNinja——不,简单的编码错误。 另外,使用 console.log 而不是 alert 来享受更好的开发者体验。 感谢所有快速回复的家伙。我的错,在这个项目上工作了几个小时,甚至简单的事情似乎都被隐藏了。将其更改为 ID 即可。 【参考方案1】:

请更改您的 HTML 元素属性。

您提到了“mySelect”作为类,在 JS 中,您使用 ID 引用来调用它。

【讨论】:

【参考方案2】:

您必须指定选择元素的id

<select class="mySelect" id="mySelect">

【讨论】:

【参考方案3】:

按照代码:

您需要将 id 提供给下拉列表,因为您尝试通过 id 获取数据所以...

<select id="mySelect" class="mySelect">
   <option value="st1" selected="selected">Create new Stream</option>
   <option value="st1">Stream 1</option>
   <option value="st2">Stream 2</option>
   <option value="st3">Stream 3</option>
   <option value="st4">Stream 4</option>
</select>

希望这能解决你的问题....

谢谢...

【讨论】:

【参考方案4】:
var str = "";
$( "select option:selected" ).each(function() 
  str += $( this ).text() + " ";
);

【讨论】:

能否请您详细说明您的答案,添加更多关于您提供的解决方案的描述?【参考方案5】:

plunker:https://plnkr.co/edit/Q7yyVvUTaLYvPaDW5j7G?p=preview

    <select id="mySelect" class="mySelect" >
      <option value="st1" selected="selected">Create new Stream</option>
      <option value="st1">Stream 1</option>
      <option value="st2">Stream 2</option>
      <option value="st3">Stream 3</option>
      <option value="st4">Stream 4</option>
    </select>


function choice() 

    var choice=document.getElementById("mySelect");
    alert(choice.value);  // get value
    var strUser = choice.options[choice.selectedIndex].text;
    alert(strUser.toString());

【讨论】:

【参考方案6】:

您的 html 中没有 id,所以我尝试按类名..

function choice() 
    var choice=document.getElementsByClassName("mySelect");
    var strUser = choice[0].options[choice[0].selectedIndex].text;
    alert(strUser.toString());            

【讨论】:

以上是关于使用Javascript获取下拉列表中选择的值(显示空)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 从HTML下拉列表中获取选定的值

如何在编辑页面的下拉列表中获取先前选择的值

使用 Javascript 将下拉列表的多项选择保存到变量

使用javascript为下拉列表赋值

如何使用angularJS从自定义下拉列表中获取选定的值

js怎么添加一个下拉列表的值