【发布时间】:2014-08-08 16:11:18
【问题描述】:
我在使用<select multiple> 下拉菜单时无法找到选定的选项。
SO 对从下拉菜单中查找用户选择的选项(不是复数)进行了一些讨论:link1、link2、link3。
主要问题在下面的代码中。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://d3js.org/d3.v3.min.js"></script>
<style>
</style>
</head>
<body>
<div>
<select multiple id="menu">
</select>
</div>
<script>
var some_array=["Bob","Tom"]
var menu = d3.selectAll("#menu")
menu.selectAll("option")
.data(some_array)
.enter()
.append("option")
.attr("value", function(d) { return d; })
.text(function(d) { return d; });
menu.on("change",function(event) {
//HOW CAN I GET THE OPTION(S) THAT THE USER HAS SELECTED?
//BEST GUESS:
selections=d3.select(this).selectAll("options:checked")
console.log(selections)
})
</script>
</body>
</html>
这个脚本的问题是我没有看到控制台中显示的数组中的值“Bob”和“Tom”。
【问题讨论】:
-
只是
selections = menu.selectAll("options:checked"),不是吗? -
您正在选择一组元素。简单地打印它们将打印一个数组,而不是选中的选项。
-
@LarsKotthoff - 你的建议与我上面的结果相同。
-
@MikePrecup - 它确实是一个数组数组;但是,没有任何地方(我能找到)包含所需项目的数组,即 ["Bob","Tom"]。
标签: javascript html drop-down-menu d3.js