使用JavaScript获取下拉框选定值

22

我有以下HTML代码

<form>
  <div class="answer1wrap">
    <select id="mySelect">
      <option value="void">Choose your answer</option>
      <option value="To measure time">To measure time</option>
      <option value="To measure distance">To measure distance</option>
      <option value="To measure volume">To measure volume</option>
    </select>
  </div>
</form>

<button class="btn btn-default" id="checkbtn" onclick="answers();" type="button"><span    class="glyphicon glyphicon-check"></span> Check answers</button>

我也有JavaScript

function answers()
{
  var selectedanswer=document.getElementById("mySelect").selectedIndex;

  if (document.getElementsByTagName("option")[selectedanswer].value=="To measure time");{
    alert("Thats correct"); 
  }
}
我希望当按下按钮时,它会检查是否选择了“测量时间”选项,并且仅在选择该选项时提醒我。但无论选择哪个选项,它都始终显示提醒。你有什么想法吗?

请参考此文章:http://javascriptstutorial.com/blog/selecting-dropdown-element-using-javascript-or-jquery/ - user5846985
4个回答

21

也许是你 if 语句中的逗号问题。

function answers() {
var answer=document.getElementById("mySelect");
 if(answer[answer.selectedIndex].value == "To measure time.") {
  alert("That's correct!"); 
 }
}
你也可以这样写。
function answers(){
 document.getElementById("mySelect").value!="To measure time."||(alert('That's correct!'))
}

5

尝试

var e = document.getElementById("mySelect");
var selectedOp = e.options[e.selectedIndex].text;

5
我注意到的第一件事是在你的if语句结束括号后面有一个分号);

你还应该尝试通过单独声明答案变量来清理你的if语句。

function answers() {

var select = document.getElementById("mySelect");
var answer = select.options[select.selectedIndex].value;

    if(answer == "To measure time"){
        alert("Thats correct"); 
    }

}

http://jsfiddle.net/zpdEp/


3

可用的jsbin链接:http://jsbin.com/ANAYeDU/4/edit

主要部分:

function answers()
{

var element = document.getElementById("mySelect");
var elementValue = element.value;

if(elementValue == "To measure time"){
  alert("Thats correct"); 
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接