使用 Javascript 获取在下拉列表中选择的值(显示为空)

Get value selected in dropdown list using Javascript (displays null)

我需要使用 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 行根本不显示 运行。

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

您必须指定 select 个元素的 id

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

请更改您的 HTML 元素属性。

您提到 'mySelect' 作为 class 并且在 JS 中,您使用 ID 引用来调用它。

关注代码:

您需要为下拉列表提供 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>

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

谢谢...

var str = "";
$( "select option:selected" ).each(function() {
  str += $( this ).text() + " ";
});

笨蛋: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());
}

你的 html 中没有 id,所以我用 class 名字试试..

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